0

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

这些项目是这样构建的:


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


Android Project ProjB -> 使用 -> ProjCore

注意:ProjB 实现了一个Service,并通过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

有谁知道问题是什么?

4

1 回答 1

2

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

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

如果有人有同样的问题,要修复进入项目 - > 属性,选择“Java 构建路径”,转到选项卡“源”并添加aidl 文件夹。在选项卡中订购和导出将“aidl”文件夹移到“src”文件夹之前。

希望对其他人有所帮助。

于 2013-02-20T21:20:17.740 回答