android java.lang.NoClassDefFoundError,即使存在该类
跳到下面的“我的编辑”部分-新项目设置和新问题。我将原始内容留在这里以供参考… 我的Android项目中出现了一个NoClassDefFoundError——在这种情况下,它抱怨找不到我刚才添加的UserVoice插件: 由此代码触发:android java.lang.NoClassDefFoundError,即使存在该类,java,android,eclipse,adt,eclipse-adt,Java,Android,Eclipse,Adt,Eclipse Adt,跳到下面的“我的编辑”部分-新项目设置和新问题。我将原始内容留在这里以供参考… 我的Android项目中出现了一个NoClassDefFoundError——在这种情况下,它抱怨找不到我刚才添加的UserVoice插件: 由此代码触发: package com.mycompany.myapp; ... import com.uservoice.uservoicesdk.Config; import com.uservoice.uservoicesdk.UserVoice; ... public
package com.mycompany.myapp;
...
import com.uservoice.uservoicesdk.Config;
import com.uservoice.uservoicesdk.UserVoice;
...
public class MyActivity extends Activity {
...
public void onCreate(Bundle savedInstanceState) {
...
super.onCreate(savedInstanceState);
...
_configureFeedbackWidget();
}
private void _configureFeedbackWidget() {
// It gets past this code, which contains stuff in the same
// "uservoicesdk" package as the problem class.
Config config = new Config("myapp.uservoice.com");
UserVoice.init(config, this);
}
public void showFeedbackWindow(View v) {
// Triggered by a button on the page
UserVoice.launchUserVoice(this); // Error is triggered by this line
}
...
}
但是,我打开了安装的.apk(使用),并手动验证了它所抱怨的PortalActivity类是否存在:
什么会导致Android找不到该类
编辑:
我已经改变了我的项目依赖项和Java构建路径设置,这就是我现在拥有的: ! 我清理/重新构建-没有错误,现在我看到以下内容:
控制台输出:
正在安装MyApp.apk
成功
找到项目依赖项,正在安装:PortalActivity
正在将PortalActivity.apk上载到设备“LG-MS770-275bcf0”
正在安装PortalActivity.apk
成功
在设备LG-MS770-275bcf0上启动活动com.mycompany.myapp.MyActivity
\u configureFeedbackWidget()
方法中死亡,错误为java.lang.NoClassDefFoundError:com.service.uservoicesdk.Config
那么,从我的项目中引用
PortalActivity
项目的正确方法是什么,这样我的项目就可以在运行时找到PortalActivity的类,而不仅仅是在构建时?发布导致此错误的代码我不熟悉Android开发或apk文件,但是,如果它们与传统的JAR文件类似,仅仅在其中包含依赖项是不够的,那么还必须在JAR清单的类路径中指定它。我希望APK也有类似的功能。这通常是由构建时的链接器错误引起的。通常是因为没有正确添加库。有时简单地重建就能修复它@DeeV我尝试过清理/重新构建和关闭/重新打开Eclipse,我还确保相关的jar在“订单和导出”选项卡中被选中(正如您的链接所建议的),但没有成功…您是否在清单中添加了活动?