我从另一个人那里打电话给一个活动。虽然第二个加载我得到了
java.lang.NoClassDefFoundError
被叫动作类
public class Entry extends Activity implements ViewPager.OnPageChangeListener {
ViewPager form;
@Override
public void onCreate( Bundle savedInstanceState )
{
....
form.setOnPageChangeListener(this);
...
}
}
如果我移除了implements ViewPager.OnPageChangeListener
和form.setOnPageChangeListener(this)
,则会加载活动,但会抛出
java.lang.NoClassDefFoundError..
此代码完全与ADT16一起使用,我更新到ADT18并陷入了混乱。
答案 0 :(得分:2)
试试这个:
在项目中创建新文件夹libs
,并将所有外部JAR文件复制到此文件夹。
然后,右键点击Project
- > Properties
- > Java Build Path
。这里将JAR文件的路径更改为libs
文件夹,并删除从计算机路径中提供的extrenal jar文件的路径。之后它会起作用。
注意: *如果项目中已有文件夹“lib”,则只将文件夹名称“lib”更改为“libs”。如果您没有明白我的观点,请查看site
文件夹名称应为libs
而不是Libs
答案 1 :(得分:1)
ViewPager.OnPageChangeListener类来自版本4(Ice Cream Sandwich)库。您的项目找不到它们,因此没有正确配置。首先要检查的是“项目设置” - > Android ,并确保为您的Project Build Target检查4.0或4.0.3。
有时候,即使你选择了其中一个,eclipse仍然使用较旧的库。要检查的两个地方是:
您的 AndroidManifest.xml 文件。确保主清单中有android:versionCode="4"
,<uses-sdk android:minSdkVersion="14" />
(至少14)
然后检查 project.properties 文件并确保您拥有:target=android-14
。
还可以通过在libs目录中包含support-v4.jar
文件,将额外的4.0功能添加到旧平台。
上述选项之一应该可以解决您的问题。祝你好运!
答案 2 :(得分:0)
我有第二堂课需要一个罐子。我检查了libs文件夹,发现这个jar没有复制到libs文件夹。因此,每当我尝试启动第二个活动时,它都会给我NoClassDefFoundError。刚刚在libs文件夹中复制了jar,问题就解决了。