按照有关如何使用 Unity 插件在 iOS 和 Android 上设置 Firebase 5.4.4 的所有指导步骤后,它仍然无法在 Android 上运行。 Firebase 控制台不会收到应用程序的任何回调或事件,但应用程序似乎已正确配置。该项目是使用Unity 2018.3.0f2开发的。
该项目使用 Firebase 插件版本 5.4.3,我已更新到 5.4.4,结果相同。另外,我尝试再次删除并重新安装 Firebase 插件(全新安装),但没有成功。
一切似乎都已正确连接,并且 Firebase 控制台 Android 项目内部看起来已完全配置(它在 iOS 上运行没有问题)。另外,我尝试使用此处提供的快速启动应用程序(https://github.com/firebase/quickstart-unity)显示相同的异常,并且在 Firebase 控制台上未收到任何事件。
在设备上查看应用程序的logcat,表明Firebase已正确初始化:
firebase:Firebase 应用程序正在初始化应用程序 xxx.xxxxxxxx.xxxxxx(默认为 1)。
Unity:Firebase 应用程序初始化应用程序 xxx.xxxxxxxx.xxxxxx(默认为 1)。
firebase:Firebase Analytics API 初始化
Unity:Firebase Analytics API 初始化
firebase:分析 API 已初始化
Unity:分析 API 已初始化
但是在尝试使用 FirebaseAnalytics 发送指标后,日志显示下一个异常:
E FA:工作线程上的任务异常
线程:java.lang.IllegalStateException:AppMeasurement未初始化:com.google.android.gms.measurement.internal.zzbw.zzcl(未知来源:289)
还有 build.gradle 文件:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}
apply plugin: 'com.android.application'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation(name: 'android.arch.lifecycle.runtime-1.0.0', ext:'aar')
implementation(name: 'arcore_client', ext:'aar')
implementation(name: 'ARExtensions', ext:'aar')
implementation(name: 'com.android.support.animated-vector-drawable-26.1.0', ext:'aar')
implementation(name: 'com.android.support.appcompat-v7-26.1.0', ext:'aar')
implementation(name: 'com.android.support.cardview-v7-26.1.0', ext:'aar')
implementation(name: 'com.android.support.customtabs-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-compat-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-core-ui-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-core-utils-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-fragment-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-media-compat-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-v4-26.1.0', ext:'aar')
implementation(name: 'com.android.support.support-vector-drawable-26.1.0', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-ads-identifier-16.0.0', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-base-16.0.1', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-basement-16.0.1', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-measurement-api-16.0.4', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-measurement-base-16.0.5', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-stats-16.0.1', ext:'aar')
implementation(name: 'com.google.android.gms.play-services-tasks-16.0.1', ext:'aar')
implementation(name: 'com.google.firebase.firebase-analytics-16.0.6', ext:'aar')
implementation(name: 'com.google.firebase.firebase-analytics-impl-16.2.4', ext:'aar')
implementation(name: 'com.google.firebase.firebase-analytics-unity-5.4.4', ext:'aar')
implementation(name: 'com.google.firebase.firebase-app-unity-5.4.4', ext:'aar')
implementation(name: 'com.google.firebase.firebase-common-16.0.4', ext:'aar')
implementation(name: 'com.google.firebase.firebase-core-16.0.6', ext:'aar')
implementation(name: 'com.google.firebase.firebase-iid-17.0.4', ext:'aar')
implementation(name: 'com.google.firebase.firebase-iid-interop-16.0.1', ext:'aar')
implementation(name: 'com.google.firebase.firebase-measurement-connector-17.0.1', ext:'aar')
implementation(name: 'com.google.firebase.firebase-measurement-connector-impl-17.0.4', ext:'aar')
implementation(name: 'facebook-android-wrapper-7.13.0', ext:'aar')
implementation(name: 'facebook-applinks', ext:'aar')
implementation(name: 'facebook-common', ext:'aar')
implementation(name: 'facebook-core', ext:'aar')
implementation(name: 'facebook-login', ext:'aar')
implementation(name: 'facebook-marketing', ext:'aar')
implementation(name: 'facebook-messenger', ext:'aar')
implementation(name: 'facebook-places', ext:'aar')
implementation(name: 'facebook-share', ext:'aar')
implementation(name: 'play-services-basement-11.0.4', ext:'aar')
implementation(name: 'UnityAds', ext:'aar')
implementation(name: 'unityandroidpermissions', ext:'aar')
implementation(name: 'UnityARCore', ext:'aar')
implementation project(':Firebase')
}
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
minSdkVersion 24
targetSdkVersion 28
applicationId 'xxxxx'
ndk {
abiFilters 'armeabi-v7a'
}
versionCode 2
versionName '0.0.2'
multiDexEnabled true
}
lintOptions {
abortOnError false
}
aaptOptions {
noCompress '.unity3d', '.ress', '.resource', '.obb', 'build_info.txt', 'google-services-desktop.json'
}
signingConfigs {
release {
storeFile file('xxxxxxxxx')
storePassword 'xxxx'
keyAlias 'xxxx'
keyPassword 'xxxx'
}
}
buildTypes {
debug {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
jniDebuggable true
}
release {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
signingConfig signingConfigs.release
}
}
packagingOptions {
doNotStrip '*/armeabi-v7a/*.so'
}
}
我已经在其他 Unity 项目中配置了 Firebase,但现在我不知道问题根源在哪里。
就我而言,问题是由于缺少 Proguard 规则来满足 R8
-keep class android.os.SystemProperties {*;}