我有自己的自定义库apk文件(比如lib.apk)&我想要成功 可用于其他应用程序。 如何在android manifest.xml文件中提供uses-library 其他应用程序,以便使用我的自定义库。
答案 0 :(得分:7)
<uses-library>
元素用于作为固件扩展提供的附加组件。 AFAIK,它不适用于您的场景。
最有可能的是,您需要实现通过AIDL公开API的服务,或者使用一组记录的Intent
操作与其他应用程序交换数据,或者公开ContentProvider
。
否则,请将您的代码打包为JAR,而不是APK。你可以在my github repositories中看到很多这方面的例子(所有的cwac-都遵循这种模式)。
答案 1 :(得分:3)
从jar库转换为apk库时,请确保从“Java Build Path”中删除对jar的引用 - &gt; “项目”和库被添加到“Android” - &gt; “库”。
答案 2 :(得分:0)
我尝试在eclipse中使用jar库(我在项目的Java Build Path选项中添加了一个外部jar库)。应用程序编译但在运行时我有一个“找不到类...”异常。
答案 3 :(得分:0)
您实际上可以创建一个链接到另一个项目的项目。
你必须在Eclipse中做两件事:
但我还没有设法让它运行。 sdk正确上传两个软件包,但是我收到链接错误
WARN/dalvikvm(444): Link of class 'Lme/guillaumin/android/osmtracker/activity/DisplayTrackMap;' failed
ERROR/dalvikvm(444): Could not find class 'me.guillaumin.android.osmtracker.activity.DisplayTrackMap', referenced from method me.guillaumin.android.osmtracker.activity.TrackLogger.onOptionsItemSelected
WARN/dalvikvm(444): VFY: unable to resolve const-class 154 (Lme/guillaumin/android/osmtracker/activity/DisplayTrackMap;) in Lme/guillaumin/android/osmtracker/activity/TrackLogger;
VM无法在我的应用程序中加载链接到libs应用程序的类。
答案 4 :(得分:-1)
lib.apk“应用程序”应该使用AndroidManifest.xml文件中的Intent-Filters
发布意图。
需要在lib.apk中使用活动的活动,只需要启动如下的意图:
Intent i = new Intent();
i.setClass(this, libAPKActivity.class);