Android运行时异常 - 找不到方法XXX引用的类XXX。<init> </init>

时间:2013-02-19 19:36:14

标签: android android-ndk native aidl multi-project

我有一些我正在尝试组合的android项目,但我面临一些我无法理解的运行时异常。

项目建立如下:


C / C ++项目 ProjCore(有.c和.h文件)


Android项目 ProjB - &gt;用途 - &gt; ProjCore

注意: ProjB实现了服务,并通过aidl生成的java类使用ProjCore。 ProjCore位于 jni 文件夹中。 NDK已安装。 ProjB配置为自动运行ndk-build。 ProjCore的编译使用.so文件生成 libs 目录。


Android项目 ProjA - &gt;用途 - &gt; ProjB

注意: ProjA实现了一个Activity并使用了ProjB Service类。


ProjA和ProjB(包括ProjCore)构建成功,生成了apk,但在运行时,当我运行ProjA的活动时,我收到以下错误消息:

W/dalvikvm(5357): Unable to resolve superclass of Lcom/signove/health/servicetest/HealthServiceTestActivity$1; (16)

W/dalvikvm(5357): Link of class 'Lcom/signove/health/servicetest/HealthServiceTestActivity$1;' failed

E/dalvikvm(5357): Could not find class 'com.signove.health.servicetest.HealthServiceTestActivity$1', referenced from method com.signove.health.servicetest.HealthServiceTestActivity.<init>

据我所知,这些消息通常与使用外部jar的项目相关联,人们忘记将这些jar放在libs文件夹中。但是项目崩溃(ProjA)只与项目ProjB有依赖关系,并且依赖项是在项目属性中配置的。

我正在使用:   - Kubuntu 10.04   - Eclipse Indigo   - Android NDK-r8   - 安装了Eclipse CDT

有谁知道问题是什么?

1 个答案:

答案 0 :(得分:2)

我刚在项目中发现了问题。 Eclipse android插件无法将aidl文件夹识别为源文件夹,因此它不会从aidl生成java类。

我已在ProjB中修复此问题,但忘记修复ProjA(也有aidl文件)......

如果有任何人有同样的问题,请修改项目 - &gt;单击属性,选择“Java Build Path”,转到“Source”选项卡并添加aidl文件夹。 在标签订单和导出中,在“src”文件夹之前移动“aidl”文件夹。

希望能帮到别人。