2

作成時にEclipseで「Islibrary」とマークしたため、Androidアプリケーションから作成されたjarファイルがあります。現在、DexClassLoaderは、classes.dexとマークされたエントリがないため、このファイルをロードできません。これは標準の瓶のように見えます。このようなjarを、DexClassLoaderがロードできるdxを使用してdexed jarに変換するにはどうすればよいですか?助けていただければ幸いです。

4

2 に答える 2

5

コマンドラインから、sdkからdxツールを使用できます。何かのようなもの:

dx --dex --output=dexed.jar hello.jar

私のために働きます。そのようなものをビルドプロセスに統合することは、SDKによって提供されるantビルドスクリプトをハックすることを主に含む、ブラックアートのようなものです。ライブラリがたまにしか更新されない場合は、手動で更新できる可能性があります。

私の場合、dexed.jarをresources/rawフォルダーに保存します。実行時に、そこからファイルシステムにコピーし、ファイルシステムパスをDexClassLoaderに渡します。それは...少しでこぼこです。

于 2012-07-20T07:00:01.410 に答える
0

Androidライブラリは、デバイスで起動するためのものではありません。これらはAndroidプロジェクトの一部としてのみ含めることができ、参照されているすべてのAndroidライブラリの.jarファイルを単一の共有.dexファイルに変換してファイルにパッケージ化し.apkます。

Androidライブラリをテストする必要があり、マニフェストに実際にそのエントリポイントがいくつかある場合、そのための唯一の方法は、AndroidライブラリをAndroidプロジェクトに一時的に変更することです(設定のチェックバーをオフにします)。

于 2012-07-20T06:55:25.473 に答える