我正在使用Unity 2021. 3. 11 f1为一款Android游戏实现Firebase 10. 3. 0 Analytics + Crashlytics。经过几次测试,谷歌 Jmeter 板上没有任何显示,我发现Firebase初始化出了问题。
当我在Android设备上启动游戏时,这是logcat中看到的第一件事之一:
01-05 15:51:45.078 32211 2657 E Unity : DllNotFoundException: Unable to load DLL 'FirebaseCppApp-10_3_0'. Tried the load the following dynamic libraries: Unable to load dynamic library 'FirebaseCppApp-10_3_0' because of 'Failed to open the requested dynamic library (0x06000000) dlerror() = dlopen failed: library "FirebaseCppApp-10_3_0" not found
01-05 15:51:45.078 32211 2657 E Unity : at Firebase.AppUtilPINVOKE+SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_AppUtil (Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate applicationDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate arithmeticDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate divideByZeroDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate indexOutOfRangeDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate invalidCastDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate invalidOperationDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+ExceptionDelegate ioDelegate, Firebase.AppUtilPINVOKE+SWIGExceptionHelper+E
以下是我的Android库与依赖关系的外观:(注意:此时我尝试安装Firebase 9.6.0,这就是为什么这里没有显示10.3.0)
([rootProject] + (rootProject.subprojects as List)).each { project ->
project.repositories {
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
maven {
url "https://maven.google.com"
}
maven {
url (unityProjectPath + "/Assets/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/CrashlyticsDependencies.xml:20
}
mavenLocal()
mavenCentral()
}
}
dependencies {
implementation 'com.google.android.gms:play-services-base:18.1.0' // Assets/Firebase/Editor/AppDependencies.xml:17
implementation 'com.google.android.play:asset-delivery:2.0.0' // Assets/GooglePlayPlugins/com.google.play.assetdelivery/Editor/Dependencies.xml:3
implementation 'com.google.android.play:core-common:2.0.0' // Assets/GooglePlayPlugins/com.google.play.core/Editor/Dependencies.xml:3
implementation 'com.google.firebase:firebase-analytics:21.1.1' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:15
implementation 'com.google.firebase:firebase-analytics-unity:9.6.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
implementation 'com.google.firebase:firebase-app-unity:9.6.0' // Assets/Firebase/Editor/AppDependencies.xml:22
implementation 'com.google.firebase:firebase-common:20.1.2' // Assets/Firebase/Editor/AppDependencies.xml:13
implementation 'com.google.firebase:firebase-crashlytics-ndk:18.2.13' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:13
implementation 'com.google.firebase:firebase-crashlytics-unity:9.6.0' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:20
}
android {
packagingOptions {
exclude ('/lib/armeabi/*' + '*')
exclude ('/lib/armeabi-v7a/*' + '*')
exclude ('/lib/mips/*' + '*')
exclude ('/lib/mips64/*' + '*')
exclude ('/lib/x86/*' + '*')
exclude ('/lib/x86_64/*' + '*')
}
我运行了常用的“CheckAndFixDependencies”,在此期间没有收到任何错误。我也设法让这个工作之前在另一个项目没有问题,但无论我做什么,似乎firebase的“核心”应用程序不会启动,因为无法找到DLL。
我尝试了Firebase SDK 10.3.0和9.6.0,结果相同。
当我找到它声称在Unity中丢失的DLL(Assets/Firebase/Plugins/x86_64/FirebaseCppApp-9_6_0.dll)时,它代表着包含在每个平台、编辑器以及独立平台中。
我已经强制解除了无数次依赖,但运气不好。
我试着禁用目标架构ARMv7(因为我在另一篇关于这个的帖子中看到有人建议),不幸的是也没有帮助。
我目前正在用apk测试,所以我不必通过aab atm工作,但我真的怀疑这会导致Firebase的问题。
我是不是错过了一些非常明显的东西/我瞎了?
1条答案
按热度按时间polkgigr1#
我有同样的问题。我会尝试很多尝试,但它是行不通的。在第二天结束时,我尝试创建一个新的空项目,并从www.example.com添加它https://developers.google.com/unity/archive#firebase_app_core
在包管理器中作为tarball tgz文件:
1.外部依赖tgz
1.对我来说,它的firebase分析,对你来说,它的另一个firebase tgz
这些tgz必须是相同的版本,在我的情况下,第一次安装10.3它是不工作的。第二,我下载9.6 tgz文件。它的工作。
但我在控制台中有一个新错误:未在Firebase配置中设置数据库URL。
在firebase帐户中解决了创建实时数据库的问题,并下载了新的google-services.json。然后在Unity中删除旧的google-services.json并清理Assets\StreamingAssets文件夹。导入新的google-services.json。
然后我在我的工作项目中尝试了一下。我删除了所有的Firebase SDK文件夹,并做了同样的操作。而且它工作得很好!