[英]Unity and Firebase Database 7.0.2 : Fallback handler could not load library
我剛剛在我的項目中集成了 Firebase Auth,效果很好。 數據庫是在 Firebase 門戶網站上創建的。
集成 Firebase 數據庫后(由於某些不明原因未在 Unity Package 管理器中顯示),當調用database = FirebaseDatabase.DefaultInstance;
開始時,編輯器凍結。
我檢查了以我在下面復制粘貼的內容結尾的編輯器日志。 我在這里看到了一些關於 firebase 6.10 的問題的帖子,但我在這里使用的是 7.0.2。 想知道大家有沒有什么想法?
編輯日志:
后備處理程序無法加載庫/Applications/Unity/Hub/Editor/2019.4.11f1/Unity.app/Contents/Frameworks/Mono/lib/libAssets/Firebase/Plugins/x86_64/FirebaseCppApp-7_0_2.bundle 后備處理程序無法加載庫/Applications/Unity/Hub/Editor/2019.4.11f1/Unity.app/Contents/Frameworks/Mono/lib/libAssets/Firebase/Plugins/x86_64/FirebaseCppApp-7_0_2.bundle.dylib 后備處理程序無法加載庫/Applications/Unity /Hub/Editor/2019.4.11f1/Unity.app/Contents/Frameworks/Mono/lib/libAssets/Firebase/Plugins/x86_64/FirebaseCppApp-7_0_2.bundle.so 回退處理程序無法加載庫/Applications/Unity/Hub/Editor /2019.4.11f1/Unity.app/Contents/Frameworks/Mono/lib/libAssets/Firebase/Plugins/x86_64/FirebaseCppApp-7_0_2.bundle 加載場景'Temp/__Backupscenes/0.backup'
編輯#1:首先感謝你們的冗長回答。 我將嘗試在項目中重新導入捆綁文件並向您報告。 我應該注意到,編輯器日志中列出的路徑實際上並不存在於我的 Unity.app package 內容中。 它找到了內容和框架,但是 Mono 不存在......在將 CakeCommander 的注冊表添加到我的 Packages/Manifest.json 之后,我終於設法擁有 package 管理器的 Google LLC 部分,並從那里重新導入實時數據庫和 Auth,所以這很好。 我還應該注意到,現在所有 SDK 的文件夾都存在於 Packages 文件夾中,而 Assets 中不再有任何內容。 我暫時沒有使用任何版本控制。
您可能需要將 Google 游戲 package 注冊表添加到您的 Packages/Manifest.json 文件您的 Unity 項目中。
這應該看起來像:
{
"scopedRegistries": [
{
"name": "Game Package Registry by Google",
"url": "https://unityregistry-pa.googleapis.com",
"scopes": [
"com.google"
]
}
],
"dependencies": {
...
}
}
您需要重新啟動 Unity,它才能識別此更改。
我建議通過 package 管理器重新導入,以防可能出現配置錯誤。
我將從您發布的這看起來像是一個編輯器唯一的問題開始(如果它發生在您的設備上,我不會感到驚訝)。 為了分解這個特定的日志,Firebase Unity SDK 由三部分組成:
看起來缺少第 3 層,至少在桌面上是這樣。 缺少的文件是.bundle
文件,它們基本上是 macOS 的共享庫。 因此,可能會發生以下三件事之一:
MacOS Catalina(和更新版本)對可以運行和不能運行的內容有非常嚴格的保護。 您可能需要明確允許 MacOS 的.bundle
文件,以便 Unity 編輯器與 Firebase 庫連接。 我已經錄制了一個關於這個的視頻,但一般的要點是你需要重新安裝 Firebase 插件,運行 Unity(你應該得到一個安全彈出窗口),關閉彈出窗口而不刪除任何內容,然后允許 Firebase 在你的計算機的安全設置。
您已從項目中排除了 .bundle 文件。 在導入 SDK 或將項目添加到源代碼控制時(有時這些被排除在“構建工件”之外)。 為了在 Mac 上的編輯器中測試 Firebase,您需要包含 this.bundle 文件。 這可能就像重新導入FirebaseDatabase.unitypackage
並確保包含FirebaseCppDatabase.bundle
和相關的.bundle
文件一樣簡單:
請注意,如果您確實從源代碼管理中克隆了您的項目,您將需要找到您的排除規則並確保提交捆綁文件。
.bundle
文件可能未與編輯器構建目標關聯。 這通常發生在人們正在調整構建系統(例如:嘗試使用.asmdef
文件)或對在提交中包含.meta
文件感到害羞的時候。 如果您想使用 Unity 剝離游戲的 macOS 本機構建,您需要確保.bundle
文件包含在“編輯器”構建中以在編輯器和“獨立”中運行: 請注意,@CakeCommander 的建議也可以解決您的問題。 PackageManager 將 Firebase SDK 安裝在Assets/
目錄旁邊而不是內部,Unity 將知道如何在需要時在每台機器上獲取它。 任何開發人員或版本控制軟件都不太可能破壞安裝。 我會注意到 Unity 的外部依賴管理器用於自動將包遷移到 package 管理器,但現在不再 - 所以我可能會等待重新實現該功能,然后再直接與 package 注冊表混淆,但這也可能是您最簡單的路徑向前。
出於我們問題的原因:我們在 SDK 初始化之前過早地使用了 Firebase SDK。
例如:在 Firebase 解析 SDK 還沒有啟動時,在啟動畫面發送 Firebase 事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.