-3

[2012-05-2415:44:34-myproject]「java/security / Provider.class」の処理でDxの問題が発生しました:

コアライブラリを構築しない場合のコアクラス(java。*またはjavax。*)の不適切な使用または誤った使用。

これは多くの場合、IDE(Eclipseなど)を使用しているときに、アプリケーションのプロジェクトにコアライブラリファイルが誤って含まれていることが原因です。コアクラスを意図的に定義していないことが確実な場合は、これが何が起こっているのかを説明している可能性が最も高いです。

ただし、実際にはコア名前空間でクラスを定義しようとしている可能性があります。そのソースは、たとえばAndroid以外の仮想マシンプロジェクトから取得した可能性があります。これは間違いなく機能しません。少なくとも、アプリとプラットフォームの将来のバージョンとの互換性を危険にさらします。また、合法性が疑わしいこともよくあります。

アプリケーションのコンパイルではなく、完全な仮想マシンディストリビューションの作成の一部としてのみ適切なコアライブラリを実際に構築する場合は、「-core-library」オプションを使用してこのエラーメッセージを抑制します。

先に進んで「--core-library」を使用しているが、実際にアプリケーションをビルドしている場合は、ある時点でアプリケーションのビルドまたは実行に失敗することに注意してください。たとえば、オペレーティングシステムをアップグレードすると、アプリケーションが機能しなくなることに気付いた怒っている顧客に備えてください。あなたはこの問題のせいになります。

コアパッケージに含まれているコードを合法的に使用している場合、最も安全な代替手段は、そのコードを再パッケージ化することです。つまり、問題のクラスを独自のパッケージ名前空間に移動します。これは、それらがコアシステムクラスと競合することは決してないことを意味します。JarJarは、この取り組みに役立つ可能性のあるツールです。あなたがこれを行うことができないことがわかった場合、それはあなたが進んでいる道が最終的に痛み、苦しみ、悲しみ、そして嘆きにつながることを示しています。

[2012-05-24 15:44:34-myproject]Dx1エラー。中止[2012-05-2415:44:34--myproject]Dalvik形式への変換がエラー1で失敗しました

4

2 に答える 2

3

Androidプロジェクトをビルドしようとしたときに、同じエラーメッセージが表示されました。その理由は、プロジェクト設定で参照ライブラリとしてandroid.jarファイルのコピーを追加したためです。この参照を削除すると、問題はなくなりました。

于 2012-07-25T12:56:48.580 に答える
0

プロジェクトをきれいにしてから、すべての描画可能な名前を小文字にする必要があることも確認してください。

于 2012-05-24T10:23:51.593 に答える