我正在尝试将多个 Android“服务”使用的 Java 库分离到一个动态或共享库中,这些库可以由这些独立服务加载,而无需将该库包含在每个服务的 APK 中。
我知道有不同的方法可以做到这一点,例如创建 Android 服务或使用 DexLoader 和反射,但我试图避免更改库的源。相反,我正在尝试构建它并将其安装在我的设备上(本质上扩展了提供的 android API)。
以下是一个非常相似的问题,仍然没有答案: 在 Eclipse 中创建 Android 应用程序共享公共库
我知道这是 Google 不想透露的,因此在线查找信息非常困难。
到目前为止,我已经尝试在 frameworks 目录下放置一个简单的“Hello World”程序并构建它,它成功地为我的程序创建了一个 jar。然后我在 product/core.mk 中添加了我的包,并在 api/10.xml 下添加了我的包定义,之后我运行“make sdk”,导致以下错误消息:
******************************
You have tried to change the API from what has been previously released in
an SDK. Please fix the errors listed above.
******************************
make: *** [out/target/common/obj/PACKAGING/checkapi-last-timestamp] Error 38
作为一种解决方法,我将我的包添加到 out 目录内的“public_api.xml”文件中,该文件是在构建过程中以某种方式动态创建的。使用这种解决方法,SDK 构建时没有错误(尽管如果我再次清理,我将不得不再次修改 public_api.xml,因为它将因清理而被删除)。但是,当我尝试在任何地方导入和使用我的包时,它仍然说我的包“不存在”
任何帮助将不胜感激!谢谢!