如何在其他应用程序中使用我的自定义库apk文件

时间:2009-09-07 13:29:46

标签: android

我有自己的自定义库apk文件(比如lib.apk)&我想要成功 可用于其他应用程序。 如何在android manifest.xml文件中提供uses-library 其他应用程序,以便使用我的自定义库。

5 个答案:

答案 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中做两件事:

  • 在manifest.xml中添加uses-library = package name
  • 打开项目属性 - &gt; Java构建路径 - &gt;项目并添加使用过的库的项目

但我还没有设法让它运行。 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);