2

SpartacusRex の Terminal IDE と別のアプリ DroidEdit を使用して、Android で Java アプリケーションをビルドして実行しています。シンプルな 1 ファイルの Hello World は問題なくビルドおよび実行されますが、パッケージを導入すると、クラス ファイルを jar ファイルに適切に dex できません。

私のプロジェクトディレクトリから:
javac src/mypack/*. j​​ava これは正常に
コンパイルされます
dx --dex --output=Test.jar src
これにより、次の警告が表示されます

処理のトラブル:
クラス名 (mypack/Main) がパス (Main.class) と一致しません
... Main.class の解析中
... Main.class の処理中

すべてのパスとパッケージ名が正しい。Main.java は「mypack」というフォルダーにあり、「package mypack;」というパッケージ ステートメントがあります。
私は何を間違っていますか?また、 --no-strict を使用すると、警告は削除されますが、出力された jar ファイルは正しくビルドされず、実行できません。

どんな助けでも大歓迎です。ありがとう :)

4

3 に答える 3

6

パッケージ名とまったく同じ名前のディレクトリ内にクラス ファイルを配置し、そこから jar ファイルを作成する必要があります。

たとえば、com.test.me.MyActivitycom/test/me/MyActivity.classにある必要があります

于 2013-06-18T13:33:17.473 に答える
0

あなたの質問によると、すべての *.class ファイルはmypack/ディレクトリにあるため、次のコマンドを発行すると役立つ場合があります。

dx --dex --output=classes.dex src/mypack/

dxすべてのファイルをmypack直接選択します。このSO questionを読むことを検討してください。

于 2013-02-27T19:10:44.513 に答える