問題タブ [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.

0 投票する
1 に答える
219 参照

android - デデクサーを使用してこの逆アセンブル行を解釈する方法は?

以下は、Android マーケット アプリでdedexerinvoke-virtualを使用して逆アセンブルされたスニップコードです。元の Java コードが何であるかわかりません。

invoke-virtual {v0},[Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType;/clone ; clone()Ljava/lang/Object;

[配列であるはずですがclone、タイプの配列の要素でメソッドを呼び出していcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffTypeますか? では、なぜ;クラス名とメソッド名の間にあるのcloneでしょうか? デクサー自体のバグ?

0 投票する
2 に答える
3961 参照

android - コマンドラインからのAndroidプロジェクトのコンパイルは遅い

私はOSXのコマンドラインから以下を使用して(かなり単純で、数百のLOCを持つわずか5つのファイル)アプリをコンパイルしています。

ant debug

できます。しかし、それはゆっくりと動作します:

BUILD SUCCESSFUL Total time:

26 seconds

何故ですか?1つのJavaファイルの1行だけを変更しても、これだけの時間がかかります。この時間のほとんどはdexステージ(約20秒)で費やされます。これは、AFAIKがDalvikバイトコードを作成することです。しかし、Eclipseを使用してWindowsで同じプロジェクトに取り組んでいる私の友人は、自分のマシンでコンパイルするのに1、2秒しかかからないと言っています。このプロセスをスピードアップするために私にできることはありますか?

0 投票する
1 に答える
934 参照

android - Android - dx トラブル処理 - コア クラス 2012、Android 4 アップデートの不適切な使用法または誤った使用法

アプリケーションをビルドしようとしているときに「不適切または誤ったコア クラスの使用法」というエラーを受け取ったとき、Stackoverflow を検索し、いくつかの提案に従って、ant と jarjar を使用してアプリケーションをビルドしました。

Ant ビルドは dx ステップで失敗し、以下に報告されたエラーが発生しました。

「強制できません」エラー (以下を参照) を修正する方法に関する提案を Web で検索しましたが、役立つものは何も見つかりませんでした。

ant ビルドの jarjar ステップが機能しているように見えたことに注意してください。bin/repackagedclasses.jar の Java ディレクトリの内容を確認したところ、それらは空で、すべての内容が名前が変更された同等のディレクトリ (/java) に転送されました。

私が従った (ant と jarjar を使用した) 提案は 2 年以上前のものであり、Android 2.x に適用されたことにも注意してください。Android 4 および関連するインフラストラクチャでは機能しない可能性があります (おそらく?)。

最後に 1 点。sdk/platform-tools の dx を次のように変更しました。

上記の変更の有無にかかわらず、ant ビルドまたは Eclipse ビルドに違いはありません。

0 投票する
1 に答える
176 参照

android - コンパイル時にAndroidDexファイルからAWT参照を取り除く

私のAndroidアプリで、私のbytecode makes illegal references to java.awt、場合によっては。という警告が表示されruntime seems to replace invalid opcodesます。

DX生成されたdexファイルにこれらの参照が含まれないように、これらの参照を以前に(コンパイル時などに)クリーンアップまたは置換するようにツールに指示するためにできることはありますか?

0 投票する
1 に答える
1953 参照

android - Android がリソースを動的に読み込む

アプリで JAR/APK をダウンロードするためにDexClassLoaderを使用しようとしています。アプリをモジュール化して、メイン アプリにまとめて出荷するのではなく、ユーザーが必要に応じて UI フローをダウンロードできるようにしたいと考えています。

実際のクラスの読み込みは正常に機能し、ホスト アクティビティに追加できるいくつかの UI コンポーネントを読み込むことができました。

私の問題は、リソース (文字列、ドローアブル、レイアウト) にホスト APK が付属していないため、ダウンロードしたパッケージにアクセスしたり、リソース (文字列、ドローアブル、レイアウト) を追加したりできないことです。ダウンロード可能な JAR/APK のリソースを動的にロードすることはできますか?

0 投票する
2 に答える
4464 参照

android - sdCard の jar ライブラリから Activity クラスを動的にロードして実際に使用することは可能ですか?

sdCardに1つの.jarファイルがあります(dxツールを使用して、通常の.jarをdexにコンパイルしました..そうしないと、Androidは実行時に文句を言います)

使用したいクラスは実際にはアクティビティであり、「使用」とはインフレを意味します!

A) このようにクラスをロードすると、ロードされたクラスは親クラスのパッケージを親パッケージとして持つことに気付きました (コードを実行するもの: 例: jar ライブラリ内のクラスの実際のパッケージ: "com .something" & my-app-package: "com.wonderfull" -> ロードされたクラスは "com.wonderfull.com.something" にあります :) ) -> 再テスト: ライブラリと同じように元のパッケージを保持します

B)「最良の」シナリオでは、次のエラーが発生します。

アクティビティ ComponentInfo{com.appno2/com.appno1.futureLib.LibActivity} をインスタンス化できません: java.lang.ClassNotFoundException: ローダー dalvik.system.PathClassLoader の com.appno1.futureLib.LibActivity[/data/app/com.appno2-1 .apk]

C) マニフェストに、Activity (動的にロードされるもの) を次のように配置しました。

アクティビティ Android:name="com.appno1.futureLib.LibActivity" Android:label="@string/app_name" > /アクティビティ>

タイトルからの質問を繰り返します:sdCardのjarライブラリからActivityクラスを動的にロードして実際に使用することは可能ですか?

「なぜこれが欲しいの?」の場合 -ただの骨董品!+ 概念として: ユーザーが有効なライセンスを入力した直後に、アプリの実際のコードを (何かの jar の形で) ダウンロードする可能性

更新:-このアイデアはフラグメントで機能します(インポートされるクラスがフラグメントであることを意味します)

現在の結論: - 外部の .jar (たとえば、sdCard 上、またはインターネットからダウンロードするなど) にラメ Java クラスまたは Android UI 関連のクラスを含めることが可能であり、必要に応じてそれらを動的にロードします。そうそう: あなたはこの方法でこの活動を行うことはできません :( .. おそらくサービスでさえありません..

詳細情報 #1:実行時に Android アプリケーションからライブラリを動的にロードすることは可能ですか?

詳細情報 #2: http://android-developers.blogspot.ro/2011/07/custom-class-loading-in-dalvik.html

URLClassLoaderについて: これは機能します (DalvikClassLoader - ClassNotFoundException && を使用せずに、明らかに: このようにロードされたアクティビティをインフレートすることはできません)

0 投票する
5 に答える
2036 参照

android - Android の dex コードの自動変換

Dex ファイルを変換/計測したい。変換の目標には、コード カバレッジの測定が含まれます。ソースファイルは利用できないことに注意してください。したがって、Dex のインストルメント化が唯一のオプションです。

目標を達成するためのツールを作成するための例として参照できる既存のコード ベースがあるかどうか疑問に思っています。

私は、Smali プロジェクトと、Smali 上に構築された他の多くのプロジェクトについて知っています。ただし、これらのプロジェクトはいずれも、私の目的に適した例ではありません。

smali コードまたは dexlib 表現を自動的に変換するコードを探しています。そこから smali が生成されます。後者のオプションは、smali を生成するオーバーヘッドを回避できるため、私の目的には適しています。

0 投票する
1 に答える
1676 参照

android - Dalvik 形式への変換に失敗しました: dex を実行できません: ジャンボ インデックスへの変換を処理できません

Eclipse で Android プロジェクトをコンパイルするときに問題が発生しました。必要な 3 つの外部 jar を追加したところ、次の問題が発生しました。

解決策がある唯一のリソースはこれです。残念ながら、参照された行を project.properties に追加し、推奨されるリソースとしてクリーニングしてもうまくいきませんでした。他の誰かが以前にこの問題に直面したことがある場合は、修正方法を教えてもらえますか?

0 投票する
1 に答える
1025 参照

assembly - (dex ファイルを操作するため) 逆アセンブルする方法 (dexdump のように)、変更する方法 (テキスト内のバイト コード)、次に再び dex にアセンブルする方法

「.dex」ファイルのバイトコードをテキスト形式に変更し、テキストを再度dexファイルにアセンブルしたい。最終的な「.apk」が使用可能であることを確認する必要があります。

アセンブラを自作するよりも、ツールについて知りたい。

0 投票する
1 に答える
1218 参照

bytecode - smali コードと dalvik バイトコード仕様、および dex ファイル内のオペコードの実際の 16 進数を混同する

という名前の Java クラスを定義しましたDefineFields。空のコンストラクターがあります。コンパイルすると、classes.dexファイル内の 16 進コードは次のように表示されます。

その後、バイトコード仕様を検索し、見つけました

仕様書を読みました。しかし、私は何が何であるかを完全に理解することはできません35c。(私は c を知っています、x は仕様で説明テーブルを持っています。) さらに知りたいのは、と の1016 進数をどのように説明できるかです。70100C050C

これらは仕様のオペコードと一致しません。