web-dev-qa-db-ja.com

espresso-contribを追加するとInflateExceptionが発生するのはなぜですか?

Build.gradleファイルには、サポートライブラリの依存関係があります。

compile "com.Android.support:appcompat-v7:22.2.0"
compile "com.Android.support:recyclerview-v7:22.2.0"
compile "com.Android.support:design:22.2.0"

エスプレッソテストの依存関係もあります。

androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2'
androidTestCompile 'com.Android.support.test.espresso:espresso-intents:2.2'

この時点ではすべて正常に動作しますが、espresso-contribの依存関係を追加すると、InflateExceptionRecyclerViewが表示されます。

Android.view.InflateException: Binary XML file line #33: Error inflating class Android.support.v7.widget.RecyclerView
at Android.view.LayoutInflater.createView(LayoutInflater.Java:633)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:743)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
at Android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.Java:249)
at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:106)
...
Caused by: Java.lang.IllegalStateException: Binary XML file line #33: Unable to find LayoutManager Android.support.v7.widget.@2131296518
at Android.support.v7.widget.RecyclerView.createLayoutManager(RecyclerView.Java:500)
at Android.support.v7.widget.RecyclerView.<init>(RecyclerView.Java:438)
at Android.support.v7.widget.RecyclerView.<init>(RecyclerView.Java:404)
...
Caused by: Java.lang.ClassNotFoundException: Didn't find class "Android.support.v7.widget.@2131296518" on path: DexPathList[[Zip file "/system/framework/Android.test.runner.jar", Zip file "/data/app/com.myapp.debug.test-1/base.apk", Zip file "/data/app/com.myapp.debug-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:511)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:469)
at Android.support.v7.widget.RecyclerView.createLayoutManager(RecyclerView.Java:480)
...
Suppressed: Java.lang.ClassNotFoundException: Invalid name: Android.support.v7.widget.@2131296518
at Java.lang.Class.classForName(Native Method)
at Java.lang.BootClassLoader.findClass(ClassLoader.Java:781)
at Java.lang.BootClassLoader.loadClass(ClassLoader.Java:841)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:504)

なぜこれが起こっているのか、どうすれば修正できるのかについてのアイデアはありますか?

24
rosegrink

Build.gradleでこれを試してください:

androidTestCompile ('com.Android.support.test.espresso:espresso-contrib:2.2'){
    exclude group: 'com.Android.support', module: 'appcompat-v7'
    exclude group: 'com.Android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}
52
elcolto

クラスリサイクラービューを膨らませるエラーについて同じ問題があり、さまざまなコードで数回試しましたが、最終的にプロジェクトgradleにこれらのコードを追加してこの問題を解決しました:

 androidTestCompile 'com.Android.support.test.espresso:espresso-intents:2.2.1'
androidTestCompile ('com.Android.support.test.espresso:espresso-core:2.2.1') {
    exclude module: 'support-annotations'
}
androidTestCompile ('com.Android.support.test.espresso:espresso-contrib:2.2.1') {
    exclude module: 'support-annotations'
    exclude module: 'support-v4'
    exclude module: 'recyclerview-v7'
}

次に、最新バージョンでカードビューとリサイクラービューを使用していることを確認する必要があります。

compile 'com.Android.support:cardview-v7:23.1.1'
compile 'com.Android.support:recyclerview-v7:23.1.1'

次に、アクティビティレイアウトにリサイクラービューがあるテストを実行できます。正常に動作し、エラーは再発しません。

7
audrians

これを試して:

// Testing dependencies
androidTestCompile 'com.Android.support.test:runner:0.4.1'
androidTestCompile 'com.Android.support.test:rules:0.4.1'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.Android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile('com.Android.support.test.espresso:espresso-contrib:2.2.1') {
        exclude group: 'com.Android.support', module: 'appcompat'
        exclude group: 'com.Android.support', module: 'support-v4'
        exclude module: 'support-annotations'
        exclude module: 'recyclerview-v7'
    }
3
Andrey Kolchev