Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Expresso测试在API级别20及以下的设备上抛出java.lang.NoClassDefFoundError:roboguice.inject.AssetManager Provider_Java_Android_Android Espresso_Roboguice_Android Instrumentation - Fatal编程技术网

Expresso测试在API级别20及以下的设备上抛出java.lang.NoClassDefFoundError:roboguice.inject.AssetManager Provider

Expresso测试在API级别20及以下的设备上抛出java.lang.NoClassDefFoundError:roboguice.inject.AssetManager Provider,java,android,android-espresso,roboguice,android-instrumentation,Java,Android,Android Espresso,Roboguice,Android Instrumentation,我的测试在API级别为20及以上的设备上运行良好,但在API级别为19及以下的设备上失败。 问题似乎出在roboguice上,但我无法找到解决方案。 请帮忙。 日志如下所示。 03-15 05:06:54.600 1748-1748/? E/AndroidRuntime: FATAL EXCEPTION: main 03-15 05:06:54.600 1748-1748/? E/AndroidRuntime: Process: com.rr.rruniversal.mobile, PID: 1

我的测试在API级别为20及以上的设备上运行良好,但在API级别为19及以下的设备上失败。 问题似乎出在roboguice上,但我无法找到解决方案。 请帮忙。 日志如下所示。

03-15 05:06:54.600 1748-1748/? E/AndroidRuntime: FATAL EXCEPTION: main
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime: Process: com.rr.rruniversal.mobile, PID: 1748
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime: java.lang.NoClassDefFoundError: roboguice.inject.AssetManagerProvider
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at roboguice.config.DefaultRoboModule.configure(DefaultRoboModule.java:155)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.AbstractModule.configure(AbstractModule.java:78)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:252)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.spi.Elements.getElements(Elements.java:107)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.util.Modules$OverrideModule.configure(Modules.java:174)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.AbstractModule.configure(AbstractModule.java:78)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:252)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.spi.Elements.getElements(Elements.java:107)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:135)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.Guice.createInjector(Guice.java:100)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.google.inject.Guice.createInjector(Guice.java:87)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at roboguice.RoboGuice.createGuiceInjector(RoboGuice.java:186)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at roboguice.RoboGuice.getOrCreateBaseApplicationInjector(RoboGuice.java:114)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at net.doo.snap.ScanbotSDKInitializer.initialize(SourceFile:119)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.rruniversal.mobilelib.imagecapture.ImageCaptureInitializer.initialize(Unknown Source)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.hello.appuniversal.RRUniversalApp.onCreate(RRUniversalApp.java:126)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.support.test.runner.MonitoringInstrumentation.callApplicationOnCreate(MonitoringInstrumentation.java:325)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4328)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.app.ActivityThread.access$1500(ActivityThread.java:135)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:136)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5001)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:515)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
03-15 05:06:54.600 1748-1748/? E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
03-15 05:06:54.600 532-707/? W/ActivityManager: Error in app com.rruniversal.app.mobile running instrumentation ComponentInfo{com.rr.rruniversal.test/android.support.test.runner.AndroidJUnitRunner}:
03-15 05:06:54.600 532-707/? W/ActivityManager:   java.lang.NoClassDefFoundError
03-15 05:06:54.600 532-707/? W/ActivityManager:   java.lang.NoClassDefFoundError: roboguice.inject.AssetManagerProvider
我哪里做错了?在build.gradle中有什么特别需要包含的依赖项吗? 我添加的依赖项如下:

androidTestCompile ('com.android.support.test.espresso:espresso-core:2.2.1') {
        exclude group: 'com.android.support', module: 'support-annotations'
        exclude group: 'com.google.code.findbugs', 'module': 'jsr305'
    }

    // Espresso-web for WebView support
    androidTestCompile ('com.android.support.test.espresso:espresso-web:2.2.1') {
        exclude group: 'com.android.support', module: 'support-annotations'
        exclude group: 'com.google.code.findbugs', 'module': 'jsr305'
    }
排除已经完成,因为我在同步时遇到冲突。我正在为我的应用程序使用SDK级别23。
任何帮助都可以。提前谢谢

我和你有同样的问题,终于在KitKat上解决了。。。以下是我当前的工作配置:

  • 机器人指南3.0.1
  • 23.4.0版本的大量Android支持库
  • 谷歌播放服务8.4.0
  • 黄油刀等

  • Android Gradle插件2.1.0

  • 构建工具23.0.3
  • 目标并编译sdk23
  • min SDK 15
  • Android支持Multidex 1.0.1
  • 一堆其他依赖项
对于依赖项中的android测试,我有:

在哪里

在您的情况下,您可能需要添加:

如果你没有使用mockito,那么我想你可以跳过dexmaker依赖项——它们只需要让mockito工作(至少在我的项目中)


希望这能解决你的问题

您是否尝试过此链接,请检查此链接-您支持multidex吗?@UrielFrankel,是的,项目确实支持multidex。@Kedi,我认为该链接与我的情况无关,我的一个依赖项是使用roboguice-3.0.1 jar,因此,我得到了API级别19及以下提到的错误。我认为roboguice和guice是不同的东西。根据这一行,要使事情正常运行,除了roboguice2和guice3(无aop)之外,您还需要添加另一个jar。新的jar是“javax.inject.jar”,您可以从guice3.0的zip发行版中提取它。你应该试试这个拉链。
androidTestCompile ("com.android.support.test:runner:$runnerVersion")
androidTestCompile ("com.android.support.test:rules:$rulesVersion")
androidTestCompile ("com.android.support:support-annotations:$androidSupportLibraryVersion")
androidTestCompile ("com.android.support.test.espresso:espresso-core:$espressoVersion") {
    exclude group: 'javax.inject'
}
androidTestCompile ("com.android.support.test.espresso:espresso-intents:$espressoVersion") {
    exclude group: 'com.android.support.test.espresso', module: 'espresso-core'
}
androidTestCompile ("org.mockito:mockito-core:$mockitoVersion") {
    force = true
}
androidTestCompile ("com.crittercism.dexmaker:dexmaker:$dexmakerVersion")
androidTestCompile ("com.crittercism.dexmaker:dexmaker-dx:$dexmakerVersion")
androidTestCompile ("com.crittercism.dexmaker:dexmaker-mockito:$dexmakerVersion")
    mockitoVersion                      = "1.10.19"
    runnerVersion                       = "0.5"
    rulesVersion                        = "0.5"
    espressoVersion                     = "2.2.2"
    dexmakerVersion                     = "1.4"
androidTestCompile ("com.android.support.test.espresso:espresso-web:$espressoVersion") {
    exclude group: 'com.android.support.test.espresso', module: 'espresso-core'
}