AndroidFirebase库,仪器化测试-无静态方法registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite

尝试在 Android Studio 中运行检测测试会导致

Test running failed: Process crashed.

在 logcat 中有更详细的说明

E: FATAL EXCEPTION: main
    Process: com.nikolam.colorme.debug, PID: 19841
    java.lang.NoSuchMethodError: No static method registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite;)V in class Lcom/google/protobuf/GeneratedMessageLite; or its super classes (declaration of 'com.google.protobuf.GeneratedMessageLite' appears in /data/app/com.nikolam.colorme.debug.test-lZqsu6pVWp2DVtFzU1uYgg==/base.apk)
        at com.google.firebase.perf.v1.ApplicationInfo.<clinit>(ApplicationInfo.java:1085)
        at com.google.firebase.perf.v1.ApplicationInfo.newBuilder(ApplicationInfo.java:533)
        at com.google.firebase.perf.transport.TransportManager.<init>(TransportManager.java:139)
        at com.google.firebase.perf.transport.TransportManager.<clinit>(TransportManager.java:91)
        at com.google.firebase.perf.transport.TransportManager.getInstance(TransportManager.java:149)
        at com.google.firebase.perf.internal.AppStateMonitor.getInstance(AppStateMonitor.java:64)
        at com.google.firebase.perf.provider.FirebasePerfProvider.attachInfo(FirebasePerfProvider.java:65)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6983)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6528)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6445)
        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

我发现的最接近的事情是github 上的这个问题,但我尝试了多种设置,将 protobuf java 从我的依赖项中排除。我试图将它从所有项目中排除,仅从 app 模块中,从 app 模块以外的所有模块中排除,依此类推。我在多个模块中使用 Firebase 性能。

我试着找到了protobuf-java,这里是我找到它的地方

lintClassPath - The lint embedded classpath
--- com.android.tools.lint:lint-gradle:27.1.0
     +--- com.android.tools:sdk-common:27.1.0
     |    +--- com.android.tools:sdklib:27.1.0
     |    |    +--- com.android.tools.layoutlib:layoutlib-api:27.1.0
     |    |    |    +--- com.android.tools:common:27.1.0
     |    |    |    |    +--- com.android.tools:annotations:27.1.0
     |    |    |    |    +--- com.google.guava:guava:28.1-jre
     |    |    |    |    |    +--- com.google.guava:failureaccess:1.0.1
     |    |    |    |    |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    |    |    |    |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    |    |    |    |    +--- org.checkerframework:checker-qual:2.8.1
     |    |    |    |    |    +--- com.google.errorprone:error_prone_annotations:2.3.2
     |    |    |    |    |    +--- com.google.j2objc:j2objc-annotations:1.3
     |    |    |    |    |    --- org.codehaus.mojo:animal-sniffer-annotations:1.18
     |    |    |    |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72
     |    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72
     |    |    |    |         |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72
     |    |    |    |         |    --- org.jetbrains:annotations:13.0
     |    |    |    |         --- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72
     |    |    |    |              --- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 (*)
     |    |    |    +--- net.sf.kxml:kxml2:2.3.0
     |    |    |    +--- com.android.tools:annotations:27.1.0
     |    |    |    --- org.jetbrains:annotations:13.0
     |    |    +--- com.android.tools:dvlib:27.1.0
     |    |    |    --- com.android.tools:common:27.1.0 (*)
     |    |    +--- com.android.tools:repository:27.1.0
     |    |    |    +--- com.android.tools:common:27.1.0 (*)
     |    |    |    +--- com.sun.activation:javax.activation:1.2.0
     |    |    |    +--- org.apache.commons:commons-compress:1.12
     |    |    |    +--- org.glassfish.jaxb:jaxb-runtime:2.3.1
     |    |    |    |    +--- javax.xml.bind:jaxb-api:2.3.1
     |    |    |    |    |    --- javax.activation:javax.activation-api:1.2.0
     |    |    |    |    +--- org.glassfish.jaxb:txw2:2.3.1
     |    |    |    |    +--- com.sun.istack:istack-commons-runtime:3.0.7
     |    |    |    |    +--- org.jvnet.staxex:stax-ex:1.8
     |    |    |    |    +--- com.sun.xml.fastinfoset:FastInfoset:1.2.15
     |    |    |    |    --- javax.activation:javax.activation-api:1.2.0
     |    |    |    +--- com.google.jimfs:jimfs:1.1
     |    |    |    |    --- com.google.guava:guava:18.0 -> 28.1-jre (*)
     |    |    |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    |    +--- com.google.code.gson:gson:2.8.5
     |    |    +--- org.apache.commons:commons-compress:1.12
     |    |    +--- org.apache.httpcomponents:httpmime:4.5.6
     |    |    |    --- org.apache.httpcomponents:httpclient:4.5.6
     |    |    |         +--- org.apache.httpcomponents:httpcore:4.4.10
     |    |    |         +--- commons-logging:commons-logging:1.2
     |    |    |         --- commons-codec:commons-codec:1.10
     |    |    --- org.apache.httpcomponents:httpcore:4.4.10
     |    +--- com.android.tools.build:builder-test-api:4.1.0
     |    |    --- com.android.tools.ddms:ddmlib:27.1.0
     |    |         +--- com.android.tools:common:27.1.0 (*)
     |    |         +--- net.sf.kxml:kxml2:2.3.0
     |    |         --- com.google.protobuf:protobuf-java:3.10.0
     |    +--- com.android.tools.build:builder-model:4.1.0
     |    |    +--- com.android.tools:annotations:27.1.0
     |    |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    +--- com.android.tools.ddms:ddmlib:27.1.0 (*)
     |    +--- com.android.tools.analytics-library:shared:27.1.0
     |    |    +--- com.android.tools.analytics-library:protos:27.1.0
     |    |    |    --- com.google.protobuf:protobuf-java:3.10.0
     |    |    +--- com.android.tools:annotations:27.1.0
     |    |    +--- com.android.tools:common:27.1.0 (*)
     |    |    +--- com.google.guava:guava:28.1-jre (*)
     |    |    +--- com.google.code.gson:gson:2.8.5
     |    |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    +--- org.bouncycastle:bcpkix-jdk15on:1.56
     |    |    --- org.bouncycastle:bcprov-jdk15on:1.56
     |    +--- org.bouncycastle:bcprov-jdk15on:1.56
     |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72
     |    |    --- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 (*)
     |    +--- com.google.protobuf:protobuf-java:3.10.0  -- HERE 
     |    +--- javax.inject:javax.inject:1
     |    +--- org.jetbrains.trove4j:trove4j:20160824
     |    --- com.android.tools.build:aapt2-proto:4.1.0-alpha01-6193524
     |         --- com.google.protobuf:protobuf-java:3.10.0 -- HERE 
     +--- com.android.tools.build:builder:4.1.0
     |    +--- com.android.tools.build:builder-model:4.1.0 (*)
     |    +--- com.android.tools.build:builder-test-api:4.1.0 (*)
     |    +--- com.android.tools:sdklib:27.1.0 (*)
     |    +--- com.android.tools:sdk-common:27.1.0 (*)
     |    +--- com.android.tools:common:27.1.0 (*)
     |    +--- com.android.tools.build:manifest-merger:27.1.0
     |    |    +--- com.android.tools:common:27.1.0 (*)
     |    |    +--- com.android.tools:sdklib:27.1.0 (*)
     |    |    +--- com.android.tools:sdk-common:27.1.0 (*)
     |    |    +--- com.google.code.gson:gson:2.8.5
     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    |    --- net.sf.kxml:kxml2:2.3.0
     |    +--- com.android.tools.ddms:ddmlib:27.1.0 (*)
     |    +--- com.android:zipflinger:4.1.0
     |    |    --- com.android.tools:common:27.1.0 (*)
     |    +--- com.android:signflinger:4.1.0
     |    |    +--- com.android.tools.build:apksig:4.1.0
     |    |    --- com.android:zipflinger:4.1.0 (*)
     |    +--- com.android.tools.analytics-library:protos:27.1.0 (*)
     |    +--- com.android.tools.analytics-library:tracker:27.1.0
     |    |    +--- com.android.tools:annotations:27.1.0
     |    |    +--- com.android.tools:common:27.1.0 (*)
     |    |    +--- com.android.tools.analytics-library:protos:27.1.0 (*)
     |    |    +--- com.android.tools.analytics-library:shared:27.1.0 (*)
     |    |    +--- com.google.protobuf:protobuf-java:3.10.0
     |    |    +--- com.google.guava:guava:28.1-jre (*)
     |    |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    +--- com.android.tools.build:apksig:4.1.0
     |    +--- com.android.tools.build:apkzlib:4.1.0
     |    |    +--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.2
     |    |    +--- com.google.guava:guava:23.0 -> 28.1-jre (*)
     |    |    +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
     |    |    +--- org.bouncycastle:bcprov-jdk15on:1.56
     |    |    --- com.android.tools.build:apksig:4.1.0
     |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    +--- com.squareup:javawriter:2.5.0
     |    +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
     |    +--- org.bouncycastle:bcprov-jdk15on:1.56
     |    +--- org.ow2.asm:asm:7.0
     |    +--- org.ow2.asm:asm-tree:7.0
     |    |    --- org.ow2.asm:asm:7.0
     |    +--- javax.inject:javax.inject:1
     |    +--- org.ow2.asm:asm-commons:7.0
     |    |    +--- org.ow2.asm:asm:7.0
     |    |    +--- org.ow2.asm:asm-tree:7.0 (*)
     |    |    --- org.ow2.asm:asm-analysis:7.0
     |    |         --- org.ow2.asm:asm-tree:7.0 (*)
     |    +--- org.ow2.asm:asm-util:7.0
     |    |    +--- org.ow2.asm:asm:7.0
     |    |    +--- org.ow2.asm:asm-tree:7.0 (*)
     |    |    --- org.ow2.asm:asm-analysis:7.0 (*)
     |    +--- it.unimi.dsi:fastutil:7.2.0
     |    +--- net.sf.jopt-simple:jopt-simple:4.9
     |    --- com.googlecode.json-simple:json-simple:1.1
     +--- com.android.tools.build:builder-model:4.1.0 (*)
     +--- com.android.tools.external.com-intellij:intellij-core:27.1.0
     |    --- org.jetbrains.trove4j:trove4j:20160824
     +--- com.android.tools.external.com-intellij:kotlin-compiler:27.1.0
     +--- com.android.tools.external.org-jetbrains:uast:27.1.0
     +--- com.android.tools.build:manifest-merger:27.1.0 (*)
     +--- com.android.tools.lint:lint:27.1.0
     |    +--- com.android.tools.lint:lint-checks:27.1.0
     |    |    +--- com.android.tools.lint:lint-api:27.1.0
     |    |    |    +--- com.android.tools:sdk-common:27.1.0 (*)
     |    |    |    +--- com.android.tools.lint:lint-model:27.1.0
     |    |    |    |    +--- com.android.tools:common:27.1.0 (*)
     |    |    |    |    +--- com.android.tools:sdk-common:27.1.0 (*)
     |    |    |    |    +--- com.android.tools.build:builder-model:4.1.0 (*)
     |    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    |    |    |    --- net.sf.kxml:kxml2:2.3.0
     |    |    |    +--- com.google.guava:guava:28.1-jre (*)
     |    |    |    +--- com.android.tools.external.com-intellij:intellij-core:27.1.0 (*)
     |    |    |    +--- com.android.tools.external.com-intellij:kotlin-compiler:27.1.0
     |    |    |    +--- com.android.tools.external.org-jetbrains:uast:27.1.0
     |    |    |    +--- com.android.tools.build:manifest-merger:27.1.0 (*)
     |    |    |    +--- org.ow2.asm:asm:7.0
     |    |    |    +--- org.ow2.asm:asm-tree:7.0 (*)
     |    |    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 (*)
     |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    |    |    --- com.android.tools.build:builder-model:4.1.0 (*)
     |    |    +--- com.google.guava:guava:28.1-jre (*)
     |    |    +--- com.android.tools.external.com-intellij:intellij-core:27.1.0 (*)
     |    |    +--- com.android.tools.external.com-intellij:kotlin-compiler:27.1.0
     |    |    +--- com.android.tools.external.org-jetbrains:uast:27.1.0
     |    |    --- org.ow2.asm:asm-analysis:7.0 (*)
     |    +--- com.google.guava:guava:28.1-jre (*)
     |    +--- com.android.tools.external.org-jetbrains:uast:27.1.0
     |    +--- com.android.tools.external.com-intellij:kotlin-compiler:27.1.0
     |    +--- com.android.tools.build:manifest-merger:27.1.0 (*)
     |    +--- com.android.tools.analytics-library:shared:27.1.0 (*)
     |    +--- com.android.tools.analytics-library:protos:27.1.0 (*)
     |    +--- com.android.tools.analytics-library:tracker:27.1.0 (*)
     |    +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 (*)
     |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     +--- com.android.tools.lint:lint-gradle-api:27.1.0
     |    +--- com.android.tools:sdklib:27.1.0 (*)
     |    +--- com.android.tools.lint:lint-model:27.1.0 (*)
     |    +--- com.android.tools.build:gradle-api:4.1.0
     |    |    +--- com.android.tools.build:builder-test-api:4.1.0 (*)
     |    |    +--- com.google.guava:guava:28.1-jre (*)
     |    |    --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 (*)
     |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)
     |    --- com.google.guava:guava:28.1-jre (*)
     +--- com.android:zipflinger:4.1.0 (*)
     +--- org.codehaus.groovy:groovy-all:2.4.15
     +--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 (*)
     --- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 (*)

其他 Firebase 库依赖于

com.google.protobuf:protobuf-javalite:3.14.0

整个dependencies.log很大所以我不知道如何发布它

回答

在我的情况下,它似乎是由protobuf-lite:3.0.1最近更新的依赖引起的androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0',我可以用这个排除来修复

androidTestImplementation (androidx.test.espresso:espresso-contrib:3.4.0'){
    exclude module: "protobuf-lite"
}

它可以满足我的需求(我只将这个库用于 DrawerActions),但是它不是很优雅的解决方案。

鉴于您发布的日期,它可能是由其他原因引起的(因为提到的库在几天前已更新),除非您使用的是某个 alpha 版本。

我建议在您的 gradle 文件中检查最近更新的依赖项。您还可以比较./gradlew :app:dependencies | grep protobuf依赖项更改前后输出的差异,然后检查完​​整的依赖项树以找出原因。


以上是AndroidFirebase库,仪器化测试-无静态方法registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>