2013-03-01 48 views
0

我有以下代碼...安卓:在支持庫片段工作,但經常庫不

import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
... 
public class LevelSelectorFragmentActivity extends FragmentActivity { 
    ... 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_level); 
    this.mAdapter = new LevelFragmentPagerAdapter(this); 
    } 
    private static class LevelFragmentPagerAdapter extends FragmentPagerAdapter { 

    public LevelFragmentPagerAdapter(FragmentActivity a) { 
     super(a.getSupportFragmentManager()); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return Level1Fragment.newInstance(); 
    } 

    @Override 
    public int getCount() { 
     return NUMBER_OF_PAGES; 
    } 

    } 
} 

這工作得很好,但是當我改變形式FragmentActivity到活動,改變進口如下...

import org.gleason.superhockey.fragment.Level1Fragment;

import android.app.Activity; 
import android.app.Fragment; 
import android.os.Bundle; 
import android.support.v13.app.FragmentPagerAdapter; 
public class LevelSelectorFragmentActivity extends Activity { 

private static final int NUMBER_OF_PAGES = 2; 
private LevelFragmentPagerAdapter mAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_level); 
    this.mAdapter = new LevelFragmentPagerAdapter(this); 
} 

private static class LevelFragmentPagerAdapter extends FragmentPagerAdapter { 

    public LevelFragmentPagerAdapter(Activity a) { 
     super(a.getFragmentManager()); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return Level1Fragment.newInstance(); 
    } 

    @Override 
    public int getCount() { 
     return NUMBER_OF_PAGES; 
    } 

} 

} 

我得到以下ClassNotFound的...

java.lang.NoClassDefFoundError: org.gleason.superhockey.LevelSelectorFragmentActivity$LevelFragmentPagerAdapter

舉一個例子,我使用this

有人能看到我缺少的是什麼?

回答

-1

您的庫.jar可能位於錯誤的目錄中,或者被添加兩次到項目中。確保您的支持庫.jar位於/ libs文件夾中。然後檢查構建路徑並從中刪除支持庫(如果存在)。清潔項目。

+0

我使用eclipse,因此它正在管理我的類路徑。現在我確實在我的班級路徑中都支持JAR,但是我無法看到哪些地方會產生變化。請注意,CNFE是針對內部類別NOT A SUPPORT CLASS的。 – Jackie 2013-03-01 16:58:07

+0

我不是指類路徑,而是構建路徑。換句話說:您的庫不應該在項目引用庫中可用。但你是對的 - 我總是在寫支持庫而不是其他外部庫。 – toommm 2013-03-01 17:17:49

+0

是的我仍然不認爲這是問題,因爲它是一個內部類,但我可能是錯的。如果內部類不是,我只是看不到構建路徑上的父類。我會相信,支持片段正在被v13使用,而不是常規片段,並且錯誤並不是說實際問題是什麼,但這就是爲什麼我發佈:-)。感謝您的幫助! – Jackie 2013-03-01 17:20:46