私たちの国ではブロックされているため、OperaMiniv6.5サーバーを編集します。
これで、クラスを抽出した.apkファイルを解凍しました。次に、dex2jar.batを介して変換し、サーバーを変更しました。
私の問題は、.jarまたは.classをclasses.Dexに再パックしたいということです。どうすればいいのですか?
これが私の場合に役立った解決策です...
.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"
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"
より詳細な説明:
/Users/exampleName/Library/Android/sdk/build-tools/25.0.2/
dx --dex--output="c:\temp\app.apk" "c:\temp\in.jar"
それでも何らかの理由で機能しない場合は、次の要件に従っていることを確認してください。
これは遅いことはわかっていますが、何時間もの試行錯誤の末、自分でこれを理解する必要がありました。他のMacユーザーに役立つことを願っています。
Android Studio全体のダウンロードを回避するには:コマンドツールに移動して、フォルダーをダウンロードして解凍します。次に、その中に入ってツールを見つけますsdkmanager
。次に、コマンドラインでタイプしsdkmanager "build-tools;28.0.1"
ます。使用しているJavaのバージョンに応じて、適切なビルドツールのバージョンを選択できます。これにより、コマンドラインツールのルートディレクトリにダウンロードされます。このフォルダに移動すると、dx
ツールが表示されます。次に、と入力できますdx --dex --output="nameoffile.dex" nameoffile.jar
。
少し補足:大規模なjarを変換しようとすると、OUT OF MEMORY
エラーが発生する可能性があります。この場合、JVMにヒープの増加オプションを渡すだけですdx -JXmx256m ...
。
jarファイルをデキシファイするには、sdkのplatform-toolsフォルダー内でdx.batを使用します。SDKのtools\antフォルダー内のbuild.xmlファイル内の-dexタスクを確認することもできます。
apktoolが必要なようですが、dxの実行に取り掛かって自分自身を適応させる必要なしに、apkを再パックして再署名することができます。
開梱と再梱包の方法に関する記事は次のとおりです