web-dev-qa-db-ja.com

.Javaファイルを.Smaliファイルに変換する

AndroidアプリケーションをAPKToolでリバースエンジニアリングし、.Smaliファイルをソースコード出力として取得しました。アプリケーションで.Smaliファイルを.Javaファイルに変換しました。Javaを正常に編集することができました新しい.Smaliファイルを使用してアプリケーションを再コンパイルできるように、ファイルを.Smaliに戻す必要があります。そこに.Javaファイルを残しただけでは、再コンパイルされず、エラーが発生します。見つかりませんでしたインターネットで.Javaを.Smaliにコンパイルすることについては何でもですので、皆さんが私を助けてくれることを願っています。

前もって感謝します、

12
user3830316

Javaクラスを通常のJavaコンパイラを使用してコンパイルし、Androidの「dx」ユーティリティを使用して、コンパイルされた.classファイルをdexファイルに変換することができます。そして、dexファイルでbaksmaliを実行して、smaliファイルを生成します。

たとえば、Java "HelloWorld.Java"という名前のファイルに次のコードがあるとします。

public class HelloWorld {
    public static void main(String[] args) {
         System.out.println("Hello World!");
    }
}

Smaliに変換するには:

javac HelloWorld.Java
dx --dex --output=classes.dex HelloWorld.class
baksmali classes.dex
18
JesusFreke

Java2smaliを試してください: https://github.com/ollide/intellij-Java2smali

これは、JavaをSmaliに変換するために使用されるアプリケーションです。

14
Dermot Blair