当我运行Android乐器测试时,Espresso类初始化失败,并显示以下stacktrace:
java.lang.NoSuchMethodError: No interface method get()Ljava/lang/Object; in class Ljavax/inject/Provider; or its super classes (declaration of 'javax.inject.Provider' appears in /data/app/com.myapp.mock.debug-2/base.apk)
at android.support.test.espresso.DaggerBaseLayerComponent.idlingResourceRegistry(DaggerBaseLayerComponent.java:101)
at android.support.test.espresso.Espresso.<clinit>(Espresso.java:52)
...
我不知道它是否相关,但我的项目使用Kotlin。
有什么想法吗?
答案 0 :(得分:2)
解决方案是在应用程序的proguard文件中添加以下内容:
switch
否则Proguard会删除-keep class javax.inject.* { *; }
方法。
答案 1 :(得分:0)
我认为您在项目中使用DI。请参阅Donn Felker博客,
http://www.donnfelker.com/android-studio-espresso-2-0-classnotfoundexception/
希望这会对你有所帮助。