0

我在 Eclipse 中有三个 Android 项目:

应用 A(托管服务)

应用 B(使用 A 的服务)

AIDL(定义和一些自定义包裹)

APP A 启动 APP B。APP B 通过 APP A 的 AIDL 使用服务。到目前为止运行良好。问题是在APP B中没有看到自定义的parcelable Objects。它总是导致ClassNotDef错误。

我从来没有在任何示例中看到过这样的场景,因为它们总是比我的场景容易得多。似乎 eclipse 没有将自定义 Parcelable 文件从 AIDL 项目添加到 APP B 中。我不知道为什么,但生成的 Java 文件包含正确的 Parcelable 引用,但它们在 AIDL project.jar 或 /bin 文件夹中丢失。

我已经阅读过有关复制 AIDL 文件的信息,但老实说,这是我不想做的事情,因为这违反了良好的项目结构。

我们还在 CI 服务器上使用 maven 进行构建,生成的 Java 类和自定义 Parcelables 按预期在我的 APKLIB 项目中。

对我来说,它看起来更像是一个 Eclipse 问题,而不是其他任何东西,因为 maven 可以按预期编译和运行项目。

任何人都可以给我一个提示来设置这样一个可以在 Eclipse 中开始的场景吗?

4

1 回答 1

0

如果您想在两个应用程序之间共享 Parcelable 类型,则必须在 Eclipse 的单独 Android 库项目中定义它们,并让您的两个应用程序项目都依赖它。

您可能已经知道,对于每个 Parcelable com.yourpackage.YourParcelableClass,为了能够在 AIDL 中引用 Parcelable 类型,您还需要将文件 YourParcelableClass.aidl 放在与 YourParcelableClass.java 相同的目录中,其内容:

package com.yourpackage;

parcelable YourParcelableClass;
于 2013-04-25T05:53:37.860 回答