10

そのため、ごく最近、Phonegap / Androidプロジェクト内のフォルダー(project / bin / dexedLibs)に気付きました。このフォルダーには、2つの.jarファイルが含まれています。インターネットを調べた後、ADTバージョン21がプロジェクトに「pre-dexedLibs」を入れてビルド時間を短縮できると著者が言っているWebサイトを見つけました。

私は最近ADT21にアップグレードしましたが、これらの「事前定義されたLib」が実際に何をするのかについて、他の誰かが私にもっと情報を教えてくれるかどうか疑問に思っていました。ネット上で他に役立つ情報を見つけることができませんでした。

4

3 に答える 3

10

約20の外部ライブラリを備えたAndroidプロジェクトがあります。ADT 21より前は、ソースコードを変更するたびに、アプリを再構築するのに何年もかかりました。今ではかなり速いです!

その理由は、ADT 21より前では、Eclipseで[実行]ボタンを押すたびに外部ライブラリがdexコードにコンパイルされていたためだと思います。これで、外部ライブラリのdexコードが(変更されるまで)一度だけコンパイルされ、後で「実行」するためにプリビルドライブラリが使用されます。

私はその機能が好きです!

于 2012-11-30T13:35:34.023 に答える
5

注意してください!例外が発生する理由を見つけるために1時間費やしました:

Caused by: java.lang.NoSuchMethodError: 

その理由は、lib jar を新しい jar (同じ名前) に変更し、ADT 21 が dexedLibs で新しいものを準備しなかったためです。

したがって、bin dir を削除するだけで、Eclipse がこれを再作成します。

于 2013-03-12T20:36:44.227 に答える
0

質問は約2歳ですが、まだ興味があります。

後でここを閲覧する人へ: Cordova プロジェクトの名前を から に変更したところ、ビルド プロセスがクラッシュしたため、問題が発生my.name.a3emy.name.A3Eました。ant-build の dex ファイルが更新されていないことが判明しました (大文字と小文字の区別)。フォルダーを削除した後は問題ant-buildなく動作しましたが、最初のビルドは時間がかかりました。

dex ファイルは、Dalvik 実行可能ファイルであり、Dalvik 仮想マシンで実行できるコンパイル済みバイト コードです。Dalvik は Android のコア コンポーネントであるため、そこに存在します。

http://sourceforge.net/projects/dexer/ http://developer.android.com/reference/dalvik/system/DexFile.html http://fileinfo.com/extension/dex

Eclipse プロジェクトのクリーンアップでは、dexed ライブラリは削除されないことに注意してください。

于 2015-03-01T13:32:37.633 に答える