我有一些我正在尝试组合的android项目,但我面临一些我无法理解的运行时异常。
项目建立如下:
C / C ++项目 ProjCore(有.c和.h文件)
Android项目 ProjB - >用途 - > ProjCore
注意: ProjB实现了服务,并通过aidl生成的java类使用ProjCore。 ProjCore位于 jni 文件夹中。 NDK已安装。 ProjB配置为自动运行ndk-build。 ProjCore的编译使用.so文件生成 libs 目录。
Android项目 ProjA - >用途 - > 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
有谁知道问题是什么?
答案 0 :(得分:2)
我刚在项目中发现了问题。 Eclipse android插件无法将aidl文件夹识别为源文件夹,因此它不会从aidl生成java类。
我已在ProjB中修复此问题,但忘记修复ProjA(也有aidl文件)......
如果有任何人有同样的问题,请修改项目 - &gt;单击属性,选择“Java Build Path”,转到“Source”选项卡并添加aidl文件夹。 在标签订单和导出中,在“src”文件夹之前移动“aidl”文件夹。
希望能帮到别人。