実装プロジェクトが正常に動作した後、サードパーティのライブラリ(zxing)を使用してプロジェクトを実装しました。その後、プロジェクトを単体テストするために1つのテストプロジェクトを作成した後です。エラーがありますが、メインプロジェクトのそのメソッド内でzxingフレームワーククラスが使用されている場合、コンパイル時にまだ実行時に上記のエラーが発生します。この問題の解決方法を教えてください。
サードパーティのライブラリ参照が2回追加されたため、このエラーが発生しています。テストプロジェクトのビルドパスにアプリケーションパスを追加しました。したがって、ライブラリ参照はテストプロジェクトに自動的に追加されます。プロパティ-> Androidで、テストプロジェクトのライブラリ参照を削除します。
参考までに、 詳細はこちらをクリック 。
これは、zxing jarファイルが2回ロードされているためです。コンパイル時にzxingライブラリを "Provided"(Mavenを使用してコードをコンパイルする場合)に設定する必要があるため、ライブラリは追加されません。バイトコード。そうすれば、エラーは発生しません
残念ながら、私が見てきた最善の解決策は、次のコード行でスクリプトを使用し、Espresso v2.0を使用することです。
adb Shell setprop dalvik.vm.dexopt-flags v=n,o=v
adb Shell stop installd
adb Shell start installd
テストを開始する前に実行してください。一度だけ実行する必要があります。
Intellij Ideaでテストプロジェクトの設定を変更しました。 [モジュール]-> [依存関係]に移動し、テスト済みプロジェクトのスコープを[提供済み]に設定します。
このエラーが発生したのは、Guavaを使用していて、EspressoにもGuavaが含まれているためです。
GradleとAndroid Studioを使用している場合は、次のように依存関係からパッケージを除外できます。
androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') {
exclude group: 'com.google.guava'
}
プロジェクトのJavaビルドパス)の[注文とエクスポート]タブからjar(私の場合はマップとgoogle play services jar)のチェックを外しますが、[ライブラリ]タブに追加します。 OK、プロジェクトをクリーンして今すぐビルドします。
APIバージョンが低い(<= 19)のデバイスが特に必要ない場合は、推移的な依存関係を残して、より高いAPIバージョンのエミュレータを作成できます。
これは、APIがLollipop(API 21)よりも低いデバイスでのみ発生します。 API 21以上のエミュレータでテストを実行すると、問題なく正常に実行されます。
このエラーが時々発生します。 build-> cleanプロジェクトだけが私を助けました
21未満のAPIレベルでこのエラーが発生しました。ビルド->再構築プロジェクトだけが私を助けました。