java.lang.NoClassDefFoundError - 用于活动类

时间:2012-04-26 02:25:44

标签: android adt android-activity android-viewpager

我从另一个人那里打电话给一个活动。虽然第二个加载我得到了

java.lang.NoClassDefFoundError 

被叫动作类

public class Entry extends Activity implements ViewPager.OnPageChangeListener {

ViewPager form;

@Override
public void onCreate( Bundle savedInstanceState )
{
....
form.setOnPageChangeListener(this);
...
}
}

如果我移除了implements ViewPager.OnPageChangeListenerform.setOnPageChangeListener(this),则会加载活动,但会抛出

java.lang.NoClassDefFoundError.. 

此代码完全与ADT16一起使用,我更新到ADT18并陷入了混乱。

3 个答案:

答案 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仍然使用较旧的库。要检查的两个地方是:

  1. 您的 AndroidManifest.xml 文件。确保主清单中有android:versionCode="4"<uses-sdk android:minSdkVersion="14" />(至少14)

  2. 然后检查 project.properties 文件并确保您拥有:target=android-14

  3. 还可以通过在libs目录中包含support-v4.jar文件,将额外的4.0功能添加到旧平台。

    上述选项之一应该可以解决您的问题。祝你好运!

答案 2 :(得分:0)

我有第二堂课需要一个罐子。我检查了libs文件夹,发现这个jar没有复制到libs文件夹。因此,每当我尝试启动第二个活动时,它都会给我NoClassDefFoundError。刚刚在libs文件夹中复制了jar,问题就解决了。