AndroidでSDKを作成することを計画しました。つまり、クラスファイルとリソース(レイアウト)を、それらを必要とする別のアプリケーションと共有することを意味します。アプリケーションをJARとしてエクスポートすると、リソースファイルとR.classが含まれません。現在、AndroidはJARを介したリソースファイルのパッケージ化をサポートしていませんが、ネットを検索して、リソースファイルをソースコードでコンパイルすると、他のアプリケーションでリソースにアクセスできるという解決策を見つけました。
そのため、私は次のようにそれを行いました。
すべての解像度フォルダのコンテンツをソースフォルダにコピーしました
- src-> com.mypackege->res--->ここにresフォルダーを置きます
最後に私のsrcフォルダは次のようになります
src
com.mypackage
>myfile.java drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi com.mypackage.drawable com.mypackage.layout com.mypackage.menu com.mypackage.values
プロジェクトをビルドすると、ビンにリソースとr.classを含むすべてのクラスファイルが含まれます。
次に、jar -cvf mysample.jar com / mypackage/*を使用して手動でjarを作成します。
最終的なjarには、プロジェクトのすべてのクラスとリソースがサイドmypackageに含まれています。
次に、mysample.jar
別のアプリケーションに追加しますtestapp
。ここでは、JARをアセットフォルダーに配置し(レイアウトのため)、ビルドパスに追加します。また、ビルドパスを構成します
このアプリケーションでは、そのJARからレイアウトをロードするために必要なmyfile.class
fromを呼び出します。mysample.jar
問題は、JARファイルの下にリソースが表示されず、現在のプロジェクトのresフォルダー内のリソースのみが表示されることです。NULL pointer Exception
ただし、JARファイルからR.javaを呼び出します。また、マニフェストファイルにxmlns:custom = "http://schemas.android.com/apk/res-auto"を入れようとしましたが、これも機能しません。この問題を正確に解決できることを願っています。リソースマッピングの問題である可能性があります。これを解決するためのアイデアはありますか?