問題タブ [dex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android での Dalvik バイトコード難読化
最近、この記事を読みました AndroidでのDalvik Bytecode Obfuscation
https://github.com/thuxnder/dalvik-obfuscator/blob/master/injector.pyでソースコードもダウンロードしました
この手法が行うことは、すべてのメソッドを反復処理し、コード ブロックにジャンクバイトを挿入し、コード ブロックの前に無条件分岐を挿入することであることを理解しています (コード ブロックが実行されないようにするため)。
ただし、Python スクリプトに慣れていないため、204 行目から 212 行目までのコード ブロックを理解するのに苦労しました。これにより、例外が発生します。
作者の考えを理解できるように、このコード ブロックが何をするのか説明してくれる人がいれば幸いです。
編集:トレースバックは次のとおりです。
android - android.Log.d を削除するには?
一般的な仮定
そのため、proguard を使用してログ ステートメントをコードから削除する方法について多くのことを発見しました。基本的に、すべて -assumenosideeffects と一緒に ${sdk.dir}/tools/proguard/proguard-android-optimize.txt 構成を使用すると、うまくいきます。私の理解では、いくつかのことを行うのと同じバイトコードを取得することでした
別名、doSomeExpensiveStuff() への呼び出しを apk から削除すると仮定しました。
マイコード
proguard-project.txt:
逆コンパイルされた dex ファイル
問題
これを自分のデバイスに展開すると、ログ出力は得られませんが、5 秒間スリープします (または、ユーザーを悩ませてはならないコードによるその他の遅延またはクラッシュ)。私は何を間違っていますか?
さらなる調査
android - dalvik DEX ファイルから不要な参照を削除するツールはありますか?
既存の dex ファイルを処理するプロジェクトがあります。要件の 1 つは、不要な情報をすべて取り除き、サイズを縮小することです。
Eclipse プラグインを使用してウィザードに従うだけで単純な「hello world」アプリを作成しようとすると (SDK とプラグインは昨夜ダウンロードしてインストールした最新バージョンです)、classes.dex
300KB を超えるファイルが作成されます。
ただし、プロジェクトを見ると、サポート lib ファイルが lib フォルダーに表示されていることがわかります。それを取り除くと、アプリは引き続き動作しますが、dex ファイルのサイズが突然 3KB に減少しました。
したがって、既存のファイルにも同様の不要な参照が含まれている可能性があると思います。問題は、それらをどのように見つけて取り除くかです。
これを行うことができるツールはありますか?
android - IntelliJIDEAでAndroidプロジェクトのビルド時間を短縮
skip packaging and dexing
EclipseやADTのようにIntelliJIDEAで設定する方法があるかどうか疑問に思っています。Additional VM Options
IntelliJのAndroidDXコンパイラセクションにフィールドがありますPreferences
。おそらくこれが方法であり、設定方法です。IntelliJAndroidプロジェクトのビルドを高速化する方法という別のヒントもいただければ幸いです。
android - dex.force.jumbo=true の場合、非常に大きな APK (out-of-order method_idx) で Dexopt が失敗しました
複数の大きなサードパーティのjarファイル(Androidライブラリなど)を含む非常に大きなAndroidプロジェクトがあります。
Dexのメソッド制限の最大数に達したと思います(Eclipse経由でコンパイル):
[2012-11-18 02:28:45 - ファイル内を検索] Dx 処理 classes.dex...
[2012-11-18 02:28:48 - Dex ローダー] dex を実行できません: 新しいインデックス 66774 をマージできません非ジャンボ命令!
[2012-11-18 02:28:48 - ファイル内を検索] Dalvik 形式への変換に失敗しました: dex を実行できません: 新しいインデックス 66774 を非ジャンボ命令にマージできません!
したがって、SDK ツール 21 (プラットフォーム ツール 16) を利用して、メイン プロジェクトの project.properties を set に編集しましたdex.force.jumbo=true
。
APK の生成を許可するフラグ。しかし、私はそれを適切にインストールできませんでした(物理的およびエミュレーターの両方で)。dex オプティマイザーの障害があるようです:
11-18 20:11:05.338: I/PackageManager(103): dexopt を実行中: com.mypackage.myapp
11-18 20:11:08.577: E/dalvikvm(868): 順不同の method_idx: 0x2ae0 then 0x1
11-18 20:11:08.577: E/dalvikvm(868): アイテム 1544 @ オフセット 0xf7ae24
11-18 11-18 20:11:08.577: E/dalvikvm(868): セクション タイプ 2006 のスワップに失敗しました
11-18 20 :11:08.577: E/dalvikvm(868): エラー: バイト スワップ + 検証に失敗しました
11-18 20:11:08.597: E/dalvikvm(868): 最適化に失敗しました
11-18 20:11:08.597: W/installd( 39): DexInv: --- END '/data/app/com.mypackage.myapp-1.apk' --- status=0xff00、プロセスが失敗しました
11-18 20:11:08.597: E/installd(39): 「/data/dalvik-cache/data@app@com.mypackage.myapp-1.apk@classes.dex」で dexopt が失敗しました res = 65280
11-18 20:11:08.697: W/PackageManager(103): パッケージを /data/app/com.mypackage.myapp-1.apk にインストールできませんでした
11-18 20:11:09.018: D/dalvikvm( 103): GC_EXPLICIT は 1698K を解放し、17034K/19463K を 13% 解放し、7ms+135ms
11-18 20:11:09.068 を一時停止しました: D/AndroidRuntime(780): VM をシャットダウンしています
dex.force.jumbo
意図されていない目的でフラグを使用しようとしていますか、それともこのエラーは予測できませんか?
もしそうなら、非常に多くのクラス/メソッドを含むプロジェクトを生成するためのより良い戦略はありますか?
android - メソッド パラメータの Android バイトコード分析
Android バイトコードを分析し、メソッド パラメーターに関連するすべての命令 (パラメーターのスライスのようなもの) を見つけたいと考えています。誰かがこれについていくつかの参考文献を提供できますか? どんな助けでも大歓迎です!
android - Android:インポート中にDex変換に失敗しました
EclipseでAndroidプロジェクトをあるワークスペースの場所から別の場所にインポートしているときにエラーが発生しました。
プロジェクトでGoogle_admobを使用して広告を表示しています。エラーは発生せず、古いワークスペースで正常に機能します。
Eclipseバージョン:IndigoServiceリリース2
Android-プロジェクトバージョン: Android 4.0.3
エラー状態: [2012-12-03 12:02:27-Dexローダー]dexを実行できません:複数のdexファイルでLcom / google / ads/Adが定義されています。Dalvik形式への変換に失敗しました:dexを実行できません:複数のdexファイルがLcom / google / ads/Adを定義しています。
java - .dexファイルにないJavaライブラリを含める
私のAndroidアプリでlgplライブラリを使用することについていくつか質問があります:
- .dexファイルではなく、apkの他の場所にライブラリを配置することは可能ですか?
- 同じプロジェクトでサービスを作成した場合、そのサービスは.dexファイル内にありますか?
- Androidアプリはapk内の複数の.dexファイルで構成できますか?
- インストール中に別のapkを自動的にインストールする方法はありますか(ユーザーに尋ねることなく/最初に検索することなく)?
ありがとう、フロリアン
android - Unable to execute dex: Multiple dex files define Lcom/google/android/gcm/GCMBaseIntentService;? エラーを修正する方法
次の2つのエラーが常に発生します。
私はAndroidが初めてなので、自分で成功しませんでした。
android - dexを実行できません:複数のdexファイルがLcom / google / android / gcm/GCMBaseIntentServiceを定義しています。
私は、JSONによってデータベースからデータをフェッチするタイムテーブルアプリを作成するための学校の割り当てで忙しいです。
プッシュ通知とJohanNilssonのAndroidアクションバーにGCMサービスを使用しています。
ただし、アプリケーションを.APKファイルにエクスポートしようとすると、次のエラーが発生します。
Androidの依存関係のエクスポート中に、マップが作成され、複製が作成されます。内部には、GCMとAndroidアクションバーへの参照があります。gcmをlibsフォルダーからビルドパスに追加した後、GCMは既に参照ライブラリマップにあります。
そのため、依存関係を削除した後、エラーのためにアプリケーションを実行してエクスポートできません。
私はすでにアプリのクリーニングと再構築を試みました。私を助けてください。