I recently downloaded Android Studio Bumblebee and it helpfully asked whether I wanted to upgrade to Android Gradle Plugin 7.1.0, the version that shipped alongside Android Studio Bumblebee.
After upgrading, I get a build error:
Unable to load class 'com.android.build.api.extension.AndroidComponentsExtension'.
This is an unexpected error. Please file a bug containing the idea.log file.
Run Code Online (Sandbox Code Playgroud)
And looking at the idea.log file, I see:
A problem occurred evaluating project ':main'.
at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:103)
...
Caused by: org.gradle.api.GradleScriptException: A problem occurred evaluating project ':main'.
at …Run Code Online (Sandbox Code Playgroud) android android-gradle-plugin firebase-performance android-architecture-navigation android-safe-args
在Android Studio中使用Firebase Performance时,gradle任务app:transformClassesWithFirebasePerformancePluginForDebug所花费的时间比任何其他任务都要长,因此大大减慢了我的gradle构建时间.
java android firebase android-gradle-plugin firebase-performance
从Firebase Crashlytics收到了大量的崩溃报告.我觉得它与firebase-perf有关.
Fatal Exception: java.lang.NoClassDefFoundError: com.google.android.gms.internal.firebase-perf.zzw
at com.google.firebase.perf.metrics.Trace.start(Unknown Source:44)
at com.google.android.gms.internal.firebase-perf.zze.onActivityStarted(Unknown Source:48)
at android.app.Application.dispatchActivityStarted(Application.java:205)
at android.app.Activity.onStart(Activity.java:1150)
Run Code Online (Sandbox Code Playgroud)
已经使用最新版本的Firebase和Google Play服务.
它不会在Firebase测试实验室中的设备上崩溃.但约有1%的用户面临这个问题.
是否与缺少GMS Core有关?如果是这样,如何正确处理它,不会导致这些设备崩溃?
---更新---
project build.gradle
buildscript {
repositories {
google()
maven {
url 'https://maven.fabric.io/public'
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha04'
classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
classpath 'com.google.firebase:firebase-plugins:1.1.5'
classpath 'io.fabric.tools:gradle:1.25.4'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}Run Code Online (Sandbox Code Playgroud)
App build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
apply plugin: 'io.fabric' …Run Code Online (Sandbox Code Playgroud)我有一个用户的这个新错误.当我使用新的11.0.0 Play Services推送应用程序时,就会发生这种情况.
Fatal Exception: java.lang.RuntimeException: Serializing to a byte array threw an IOException (should never happen).
at com.google.android.gms.internal.aif.zzn(Unknown Source)
at com.google.android.gms.internal.aez.zzKB(Unknown Source)
at com.google.android.gms.internal.aez.zzKC(Unknown Source)
at com.google.android.gms.internal.aez.zzKB(Unknown Source)
at com.google.android.gms.internal.afc.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by com.google.android.gms.internal.ahy: CodedOutputStream was writing to a flat byte array and ran out of space (pos 199 limit 199).
at com.google.android.gms.internal.ahx.zze(Unknown Source)
at com.google.android.gms.internal.ahx.zzc(Unknown Source)
at com.google.android.gms.internal.ahx.zzc(Unknown Source)
at com.google.android.gms.internal.ahx.zzb(Unknown Source)
at com.google.android.gms.internal.afq.zza(Unknown Source)
at com.google.android.gms.internal.ahx.zzJ(Unknown Source)
at com.google.android.gms.internal.ahx.zzJ(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 当我将 firebase perf 依赖项添加到我的项目中时,我收到此错误Illegal class file: Class module-info is missing a super type. Class file version 53.
我的 Gradle 和 google 服务项目级依赖项是
classpath 'com.android.tools.build:gradle:3.5.1'
classpath 'com.google.gms:google-services:4.3.2'
Run Code Online (Sandbox Code Playgroud)
我遵循了他们的文档https://firebase.google.com/docs/perf-mon/get-started-android 中提到的确切步骤。
我尝试过清理和重建并清除 Android Studio 缓存。
并且还尝试了来自 StackOverflow 的类似问题解决方案
项目级构建gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
maven { url 'https://maven.google.com' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
classpath 'com.google.gms:google-services:4.3.2'
classpath 'com.google.firebase:perf-plugin:1.3.1' // Performance Monitoring plugin
}
}
allprojects …Run Code Online (Sandbox Code Playgroud) 我尝试将我的 Android 项目更新为 Kotlin 1.4.0,因为它现在正式稳定,更新后我遇到了问题。我不会在这里发布整个堆栈,因为它很长,但它的顶部看起来像这样:
...
> Task :app:transformClassesWithFirebasePerformancePluginForDebug
java.lang.ClassNotFoundException: javax.mail.internet.MimeBodyPart
> Task :app:mergeDebugJavaResource
> Task :app:dexBuilderDebug FAILED
org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
...
Run Code Online (Sandbox Code Playgroud)
在堆栈中寻找原因,我发现了这个:
...
Caused by: org.gradle.tooling.BuildException: Failed to process:
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/0,
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/1,
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/2
...
Run Code Online (Sandbox Code Playgroud)
这使我得出结论,Firebase 性能库无法正确构建。我正在使用 Firebase Performance 版本19.0.8和 gradle classpath plugin version 1.3.1。我有一段时间没有更改它,恢复到早期版本并不能解决问题。在堆栈上注册的最后一个错误是这样的:
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:151)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:118)
at com.android.build.gradle.internal.dexing.DexWorkActionKt.process(DexWorkAction.kt:194)
... 33 more
Caused by: java.lang.IllegalStateException: Unexpected non-class file: META-INF/versions/9/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class
Run Code Online (Sandbox Code Playgroud)
我已经确定,删除 Firebase Performance 库并恢复到 …
本周我开始在我的新应用中测试新的Firebase性能.一旦我将Firebase用于Auth和DB等其他功能,我已经将所有软件包更新为10.2.6 Firebase版本并遵循所有预先请求的说明.
minAPI是19.
我的问题是App在运行Android 4.4.1的真实Galaxy Duos设备中仅在API 19中与Google Play Services 10.2.98崩溃.当App启动时,它无法在设备中找到firebase-perf.
它只发生在这个软件包和其他设备和更高版本中,一切都很好,我可以在Firebase Performance Dashboard中看到数据.
提示 ?
Stacktrace下面
问候,
Process: com.mobilecodelabs.fb.trampo, PID: 2727
java.lang.RuntimeException: Unable to get provider com.google.firebase.perf.provider.FirebasePerfProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.perf.provider.FirebasePerfProvider" on path: DexPathList[[zip file "/data/app/com.mobilecodelabs.fb.trampo-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.mobilecodelabs.fb.trampo-2, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:4793)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4385)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4325)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.perf.provider.FirebasePerfProvider" on path: DexPathList[[zip file "/data/app/com.mobilecodelabs.fb.trampo-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.mobilecodelabs.fb.trampo-2, /vendor/lib, …Run Code Online (Sandbox Code Playgroud) 在发布模式下编译时,找不到此错误的起因。我的印象是,此错误未修改我的代码就出现了(我尝试回溯到github,但仍然有此错误)。
错误:任务':app:transformClassesWithFirebasePerformancePluginForRelease'的执行失败。
java.io.IOException:找不到指定的路径
带有调试标志的Gradle
22:36:11.767 [ERROR] [FirebasePerformancePlugin]无法检测org / apache / xmlbeans / impl / schema / SchemaTypeSystemCompiler.class
我的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
maven {
url 'https://maven.google.com'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:3.1.0'
classpath 'com.google.firebase:firebase-plugins:1.1.0'
classpath 'io.fabric.tools:gradle:1.+'
}
}
allprojects …Run Code Online (Sandbox Code Playgroud) 我已经安装了android firebase性能库,我可以在仪表板中看到应用程序速度等,但网络请求监控似乎不起作用.
我在logcat中收到此错误:
W/CrashlyticsCore: Cannot invoke method: registerOnMeasurementEventListener
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.crashlytics.android.core.DefaultAppMeasurementEventListenerRegistrar.invoke(DefaultAppMeasurementEventListenerRegistrar.java:94)
at com.crashlytics.android.core.DefaultAppMeasurementEventListenerRegistrar.register(DefaultAppMeasurementEventListenerRegistrar.java:54)
at com.crashlytics.android.core.CrashlyticsController.registerAnalyticsEventListener(CrashlyticsController.java:1574)
at com.crashlytics.android.core.CrashlyticsCore.doInBackground(CrashlyticsCore.java:322)
at com.crashlytics.android.core.CrashlyticsCore.doInBackground(CrashlyticsCore.java:44)
at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:63)
at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:28)
at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:311)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.RuntimeException: Unexpected AppMeasurement.OnEventListener signature
at com.crashlytics.android.core.DefaultAppMeasurementEventListenerRegistrar$1.invoke(DefaultAppMeasurementEventListenerRegistrar.java:120)
at java.lang.reflect.Proxy.invoke(Proxy.java:913)
at $Proxy1.equals(Unknown Source)
at java.util.concurrent.CopyOnWriteArrayList.indexOf(CopyOnWriteArrayList.java:196)
at java.util.concurrent.CopyOnWriteArrayList.addIfAbsent(CopyOnWriteArrayList.java:590)
at java.util.concurrent.CopyOnWriteArraySet.add(CopyOnWriteArraySet.java:262)
at com.google.android.gms.internal.measurement.zzhm.registerOnMeasurementEventListener(Unknown Source:11)
at com.google.android.gms.measurement.AppMeasurement.registerOnMeasurementEventListener(Unknown Source:6)
at java.lang.reflect.Method.invoke(Native Method)
at com.crashlytics.android.core.DefaultAppMeasurementEventListenerRegistrar.invoke(DefaultAppMeasurementEventListenerRegistrar.java:94)
at com.crashlytics.android.core.DefaultAppMeasurementEventListenerRegistrar.register(DefaultAppMeasurementEventListenerRegistrar.java:54)
at com.crashlytics.android.core.CrashlyticsController.registerAnalyticsEventListener(CrashlyticsController.java:1574)
at com.crashlytics.android.core.CrashlyticsCore.doInBackground(CrashlyticsCore.java:322)
at com.crashlytics.android.core.CrashlyticsCore.doInBackground(CrashlyticsCore.java:44)
at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:63) …Run Code Online (Sandbox Code Playgroud) 我有一个使用 Gradle 和 Kotlin DSL 的 Android 应用程序。我正在添加 Firebase 性能监控,但我希望仅针对特定构建类型启用它。
我一直在遵循Firebase - 禁用 Firebase 性能监控中提供的说明。不幸的是,提供的代码片段在 Groovy 中。
我尝试通过执行以下操作在我的应用级 Gradle 脚本中获取对 Firebase 性能监控扩展的引用:
plugins {
...
id("com.google.firebase.firebase-perf")
kotlin("android")
kotlin("android.extensions")
kotlin("kapt")
}
buildTypes {
getByName(BuildTypes.DEBUG) {
configure<com.google.firebase.perf.plugin.FirebasePerfExtension> {
setInstrumentationEnabled(false)
}
}
...
}
...
dependencies {
val firebaseVersion = "17.2.1"
implementation("com.google.firebase:firebase-core:$firebaseVersion")
implementation("com.google.firebase:firebase-analytics:$firebaseVersion")
implementation("com.google.firebase:firebase-perf:19.0.5")
}
Run Code Online (Sandbox Code Playgroud)
Android Studio 在这方面没有发现任何问题并自动完成FirebasePerfExtension。不幸的是,在运行 Gradle 同步时,我得到以下信息:
Extension of type 'FirebasePerfExtension' does not exist.
Currently registered extension types: [ExtraPropertiesExtension, DefaultArtifactPublicationSet, ReportingExtension, SourceSetContainer, JavaPluginExtension, NamedDomainObjectContainer<BaseVariantOutput>, BaseAppModuleExtension, CrashlyticsExtension, …Run Code Online (Sandbox Code Playgroud)