2

によってロードできる「セカンダリ dex」を構築するプロセスを自動化するように依頼されましたDexClassLoader。手動で .jar ファイルにエクスポートしてからdxスクリプトを実行classes.dexしてメイン プロジェクトのアセット ディレクトリにある新しい .jar に追加する代わりに、セカンダリ プロジェクトの通常のコンパイルでは、動的にロード可能な .jar がメイン プロジェクトに自動的にコピーされるという考え方です。 .

dxセカンダリ プロジェクトを Android ライブラリとしてマークし (.jar にコンパイルされるように)、スクリプトを呼び出す Eclipse ビルダーを追加することで、これを実行できるように見えます。私は bash スクリプトと、スクリプトに渡す .launch ラッパーを持って${project_loc}/bin/${resource_name}.jarいます。メイン プロジェクトのルート ディレクトリに bash スクリプトを配置すると%0、ロード可能な .jar をコピーする場所が表示されます。

もちろん、途中でdxはありません。私は「which adb」を実行してから使用すると考えましたfind...しかしadb、パス上にもありません!

それで、私の質問: Android SDK の場所を含む Eclipse 文字列変数はありますか?

4

2 に答える 2

0

Fwiw、「Android SDK の場所を含む Eclipse 文字列変数」は見つかりませんでした。代わりに、私がしたことは

  1. スクリプトを読んで、dx引数を に渡しただけであることに注意してくださいdx.jar
  2. 利用可能な最新のdx.jarものを Builder プロジェクトに追加し、Java コードから直接呼び出すだけです。ソースを見つけるのは難しくありませんでした。mainmain(String[])はいくつかの内部メソッドの 1 つに単純にディスパッチされていることがわかったmain(String[])ので、正しいメソッドを直接呼び出しました。
  3. ビルダーを 2 つの部分に分割します。a) ant アクションから呼び出すことができる単なる jar ファイルであり、dx.jar. b) ビルド制御ロジックと少しの Eclipse コンソール コードを含み、スタンドアロンの dexxer を呼び出す Eclipse ビルダー。

これはうまくいきました。Googledx.jarが何らかの方法で非常に優れた dexification を提供する をリリースした場合、新しい jar を使用して Builder を再構築するだけでよいと考えました。これはまだ問題ではありません。

于 2014-07-10T18:54:49.043 に答える