我在Eclipse中有三个Android项目:
应用A(托管服务)
App B(使用A中的服务)
AIDL(定义和一些自定义对象)
APP A启动APP B. APP B通过APP A的AIDL使用服务。到目前为止运行良好。 问题是在APP B中看不到自定义的parcelable对象。它总是导致和ClassNotDef错误。
我从未在任何示例中看到过这样的szenario,因为它们总是比我的场景容易得多。 似乎eclipse没有将自定义Parcelable文件从AIDL项目添加到APP B中。 我不知道为什么,但生成的Java文件包含正确的Parcelable引用,但它们在AIDL project.jar或/ bin文件夹中丢失。
我已经阅读过关于复制AIDL文件的内容,但说实话,这是我想要做的至少,因为它违反了具有良好项目结构的内容。
我们还使用maven在我们的CI服务器上构建,并且Generated Java Classes和自定义Parcelables在我的APKLIB项目中按预期进行。
对我而言,它看起来更像是Eclipse问题而不是其他任何东西,因为maven编译并按预期运行项目。
任何人都可以提供一些提示来设置可以在Eclipse中启动的场景吗?
答案 0 :(得分:0)
如果要在两个应用程序之间共享Parcelable类型,则必须在Eclipse中的单独Android库项目中定义它们,并使两个应用程序项目都依赖于它。
正如您可能已经知道的,对于每个Parcelable com.yourpackage.YourParcelableClass,为了能够引用AIDL中的Parcelable类型,您还需要将文件YourParcelableClass.aidl放在与YourParcelableClass.java相同的目录中,包含内容:
package com.yourpackage;
parcelable YourParcelableClass;