0

私はこの リンクをたどって います。私は最初にこのコマンドを正常に実行しました。

javac <path + filename>.java 

その後、次のコマンドを実行しようとすると、「クラス名がパスと一致しません」というエラーが発生します。

dx --dex --output=<path + filename>.dex <path + filename>.class

.classと.javaの名前は同じですが、.classファイル名の明示的なパスを記述する必要があると思います。だから今何をすべきか。私がやっているが見つけることができないいくつかの小さな間違いがあります。

4

3 に答える 3

4

dx は、指定するパスにうるさいです。作業ディレクトリに対するクラス ファイルの相対パスは、クラスのパッケージと一致する必要があります。

たとえば、コマンドが

dx --dex --output=classes.dex out/com/example/HelloWorld.class

次に、dx は、HelloWorld のパッケージ名が out.com.example であるべきであると想定し、そうでない場合は文句を言います。

ただし、トリックがあり/./ます。dx に指定したパスにパス コンポーネントを追加して、Java パッケージに関して「ルート」の場所を指定できます。前の例のパッケージが実際には com.example である場合、次のことができます。

dx --dex --output=classes.dex out/./com/example/HelloWorld.class

別のオプションは、dx のパス チェックを無効にする --no-strict オプションを使用することです。

于 2013-02-26T18:50:14.243 に答える
2

マジックナンバーの問題を回避するには、まずjdkのバージョンを確認してください。jdk1.7*に問題があるようです。jdk1.6に戻しました。

使用する代わりに、dx --dex --output=<path + filename>.dex <path + filename>.class 1つまたはすべての.classesファイルを1つのフォルダーに入れて、classFolder 次のコマンドを発行することができます。

dx --dex --output=YourClass.dex  absolutePath/classFolder 

dxコマンドは、そのフォルダー内の1つまたはすべてのクラスファイルを選択します。

于 2013-02-27T12:34:09.677 に答える
2

あなたのコマンドは間違っているようです:

dx --dex --output=.dex .class

これを試しましたか?

dx --dex --output=YourClass.dex YourClass.class
于 2013-02-26T12:44:46.763 に答える