web-dev-qa-db-ja.com

.jarまたは.classを.dexファイルに変換する方法

Opera Mini v6.5 serverは、私たちの国でブロックされているため、編集します。

これで、.apkファイルを解凍したclasses.Dexを解凍し、dex2jar.batで変換し、サーバーを変更しました。

私の問題は、.jarまたは.classをclasses.Dexに再パックすることです。どうすればいいのですか?

19
Sadra Naddaf

ここに私の場合に役立つ解決策があります...

.jarファイルが「c:\ temp\in.jar」にあるとします。コマンドプロンプトウィンドウで..\Android-sdk\platform-toolsに移動します。 .apkを取得するには、次のコマンドを実行します。

dx --dex --output="c:\temp\app.apk" "c:\temp\in.jar"

.dexファイルを取得するには、次のコマンドを実行します。

dx --dex --output="c:\temp\dx.dex" "c:\temp\in.jar"
32
Pavel Netesa

Macの場合、dxコマンドツールは別のディレクトリに保存されています。 Macでの実行方法は次のとおりです。

   exampleName$ /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/dx --dex --output="/Users/exampleName/Downloads/classes-dex2jar.jar" "/Users/exampleName/Downloads/name.dex"

より詳細な説明:

  • DxツールはAndroid SDKに保存されていますが、Macの別のディレクトリでは、Macのパスは/Users/exampleName/Library/Android/sdk/build-tools/25.0.2/
  • コマンドはWindowsとMacで同じですが、パスが異なるだけです
  • 両方のプラットフォームのコマンドはdx --dex--output="c:\temp\app.apk" "c:\temp\in.jar"
  • ツールがdexファイルを生成するのに数分かかる場合があります

それでも何らかの理由で機能しない場合は、次の要件に従っていることを確認してください。

enter image description here

私はこれが遅いことを知っていますが、何時間もの試行錯誤の後で自分でこれを理解しなければなりませんでした。それが他のMacユーザーに役立つことを願っています

1
Ruchir Baronia

apktool が必要なようですが、dxを実行して自分で調整する必要なく、apkを再パックして再署名できます。

記事はこちら 開梱および再梱包の方法

0
scottyab

Android Studio全体をダウンロードしないようにするには、 command-tools download に移動してフォルダを抽出します。次に、そこに移動してsdkmanagerを見つけます次に、コマンドラインでsdkmanager "build-tools;28.0.1"と入力します。Java使用しているバージョンに応じて、適切なビルドツールのバージョンを選択できます。これにより、コマンドラインツールのルートディレクトリ。このフォルダに移動すると、dxツールが表示されます。次に、dx --dex --output="nameoffile.dex" nameoffile.jarと入力します。

少し補足:大規模なjarファイルを変換しようとすると、OUT OF MEMORYエラーが発生する場合があります。この場合、JVMにヒープ増加オプションdx -JXmx256m ...を渡すだけです。

0
annoying_squid

Jarファイルをdexifyするには、SDKのプラットフォームツールフォルダー内のdx.batを使用します。 SDKのtools\antフォルダー内のbuild.xmlファイル内の-dexタスクを確認することもできます。

0