2009-09-07 15 views
8

自分のカスタムライブラリapkファイル(lib.apkと言う)&私はそれを 他のアプリケーションで利用できるようにします。 私のカスタムライブラリを使用するように 他のアプリのandroid manifest.xmlファイルにuses-libraryを提供する方法。他のアプリケーションで私のカスタムライブラリapkファイルを使用する方法

+0

なぜAPKが必要ですか? JARをロールしても問題ありません。 – Matthias

+0

私は同じ問題があります。マルチプルアクティビティとして機能するモジュラソフトウェアがあり、すべてのモジュールでインターフェイスと共通コードを繰り返す必要はありませんでした。私がjar libを使うことを選んだのであればそうです。 – Spidey

+4

lib.apkが処理するjarファイルにリソースを含めることは困難です。 – phreed

答えて

7

<uses-library>要素は、ファームウェアの拡張機能として提供されるアドオン用です。 AFAIK、あなたのシナリオでは使えません。

ほとんどの場合、AIDL経由でAPIを公開するサービスを実装するか、文書化されたIntentアクションのセットを使用して他のアプリケーションとデータを交換するか、ContentProviderを公開する必要があります。

それ以外の場合は、コードをAPKではなくJARとしてパッケージ化します。 my github repositoriesに多くの例があります(すべてのパターンはこのパターンに従います)。

0

私はeclipseでjarライブラリを使用しようとしています(私のプロジェクトのJava Build Pathオプションで外部Jarライブラリを追加しました)。アプリケーションはコンパイルされますが、実行時に "クラスを見つけることができませんでした"という例外があります。

0

実際に別のプロジェクトにリンクするプロジェクトを作成することができます。 > Javaのビルド・パス - - >プロジェクトとのプロジェクトを追加

  • アドオン使用して、ライブラリ= manifest.xmlにパッケージ名
  • 開いているプロジェクトのプロパティを:

    あなたはEclipseで二つのことをしなければなりません中古ライブラリ

しかし、私はそれを実行させることができませんでした。 SDKはcorrecly両方のパッケージをアップロードし、私はVMがLIBSアプリにリンクする私のアプリでクラスをロードすることはできません

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; 

リンクエラーを取得します。

-1

lib.apk "application"は、AndroidManifest.xmlファイルにIntent-Filtersを使用してインテントを公開する必要があります。

lib.apk内のアクティビティを使用するために必要な活動、すぐ下のような意図を開始する必要がある:

Intent i = new Intent(); 
    i.setClass(this, libAPKActivity.class); 
3

にし、APKライブラリのjarライブラリーからの変換を参照することを確認してくださいをjarファイルは "Java Build Path" - > "Projects"から削除され、ライブラリは "Android" - > "Library"に追加されます。

+2

ありがとう、これはアプリケーションが自分のカスタムライブラリにリンクしている私の場合にはうまくいきましたが、デバイスにAPKをインストールするときにライブラリ "APK"が見つからないという警告が表示されました。それをJavaビルド・パスから削除しますが、ライブラリ参照として保持することで解決しました。 – fejd

+1

@fejd正確に私の経験[ここ](http://stackoverflow.com/a/20320105/2930186) – ripopenid

関連する問題