2

我正在调用另一个活动。而第二个加载我得到

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 并陷入了这个混乱。

4

3 回答 3

2

试试这个:

在项目中创建新文件夹libs并将所有外部 JAR 文件复制到此文件夹。

然后,右键单击Project-> Properties-> Java Build Path。在这里将 JAR 文件的路径更改为文件libs夹,并从计算机路径中删除您提供的外部 jar 文件的路径。之后它将起作用。

注意: * 如果您的项目中已有文件夹“lib”,则只需将文件夹名称“lib”更改为“libs”。如果您不明白我的意思,请查看此站点

libs文件夹名称不应该Libs

于 2012-04-26T05:35:42.343 回答
1

ViewPager.OnPageChangeListener类来自版本 4(冰淇淋三明治)库。您的项目没有找到它们,因此配置不正确。首先要检查的是"Project Settings" -> Android,并确保为您的项目构建目标检查 4.0 或 4.0.3。

有时,即使您选择了其中之一,eclipse 仍然使用较旧的库。检查的两个地方是:

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

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

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

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

于 2012-04-26T17:14:56.663 回答
0

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

于 2013-01-29T09:15:24.737 回答