[英]Firebase support library dependency conflict for instant apps
我正在嘗試將即時應用程序實現到使用Firebase數據庫的項目中。 我的目標是SDK版本27 ,因此支持庫的版本為27.0.2 。
Firebase數據庫版本為11.8.0 , gms版本為3.1.0 。 當我嘗試同步時,我收到以下錯誤:
Android dependency 'com.android.support:support-v4' has different
version for the compile (25.2.0) and runtime (27.0.2) classpath. You
should manually set the same version via DependencyResolution
通過在即時應用程序之前顯式添加以下依賴項,我能夠解決此問題
implementation 'com.android.support:support-v4:27.0.2'
implementation 'com.android.support:support-media-compat:27.0.2'
但是對於即時應用程序,即使我在功能模塊(app-base)中有它們,當我嘗試構建實際應用程序(com.android.application)時,我再次得到相同的錯誤。
我可以通過將這些沖突的依賴項移動到應用程序模塊gradle文件中來解決這個問題,在這種情況下,同步成功,但是我面臨另一個問題,這次是使用清單合並,這會阻止應用程序查找啟動器活動:
來自AndroidManifest.xml的屬性提供者#com.google.firebase.provider.FirebaseInitProvider@authorities value =(com.iamkaan.packagename.firebaseinitprovider):AndroidManifest.xml中還有10:13-72:33:350-423 value = (com.iamkaan.packagename.base.firebaseinitprovider)。 建議:在AndroidManifest.xml:8:9-12:39中添加'tools:replace =“android:authorities”'來覆蓋。 app主要清單(此文件),第9行
最后一個問題以某種方式與firebase-core
依賴關系有關,因為當我更改我的應用程序gradle依賴關系時
implementation project(':app-base')
至
implementation (project(':app-base')) {
exclude group: 'com.google.firebase', module:'firebase-core'
}
我能夠運行該應用程序。 但這一次,我開始在運行時收到以下錯誤(我第一次調用FirebaseDatabase.getInstance()
)
Default FirebaseApp is not initialized in this process com.iamkaan.packagename. Make sure to call FirebaseApp.initializeApp(Context) first
它確實沒有被調用,但是直到應用程序即時實施才開始工作。 無論如何,我在第一次FirebaseDatabase調用之前將調用添加到了各個地方,沒有任何幫助。
包名稱
com.iamkaan.packagename
com.iamkaan.packagename
com.iamkaan.packagename.base
我碰到了類似的東西,它是由依賴項包含的支持庫引起的。 值得注意的是,幾乎所有Google / Android支持庫(CardView,RecyclerView等)都包含最新的v4和v7支持庫。 所以這通常會導致沖突。
你需要做的是:
implementation project(':app-base')
api
而不是implementation
基礎模塊的build.gradle
包含的支持庫,即build.gradle
api 'com.android.support:support-v4:27.0.2'
build.gradle
文件中 build.gradle
文件,請排除FOR EACH項目的支持庫(請參閱下面的示例) api('com.android.support:support-media-compat:27.0.2') {
exclude group: 'com.android.support'
}
api('com.android.support:support-v7:27.0.2') {
exclude group: 'com.android.support'
}
我還建議不要使用com.android.support:support-v7:27.0.2
而只使用您需要的支持庫中的特定項。 請參閱支持庫包 ,了解如何僅添加支持庫中的特定項。
試試這個。 SDK是28
implementation ('com.google.firebase:firebase-core:16.0.6'){
exclude module: 'support-media-compat'
exclude module: 'support-v4'
}
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.