Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android java.lang.NoClassDefFoundError,即使存在该类_Java_Android_Eclipse_Adt_Eclipse Adt - Fatal编程技术网

android java.lang.NoClassDefFoundError,即使存在该类

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

跳到下面的“我的编辑”部分-新项目设置和新问题。我将原始内容留在这里以供参考…

我的Android项目中出现了一个NoClassDefFoundError——在这种情况下,它抱怨找不到我刚才添加的UserVoice插件:

由此代码触发:

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中不再包含com.uservoice.uservoicesdk包。该软件包现在位于PortalActivity.apk中,我可以从控制台看到,它与我的.apk分开安装。

    控制台输出:
  • 正在将MyApp.apk上载到设备“LG-MS770-275bcf0”
    正在安装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在“订单和导出”选项卡中被选中(正如您的链接所建议的),但没有成功…您是否在清单中添加了活动?