我正在尝试将即时应用程序实施到使用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中的属性provider #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 main manifest(这个文件),第9行
最后一个问题在某种程度上与firebase-core
依赖关系有关,因为当我从
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
答案 0 :(得分:2)
我碰到了类似的东西,它是由依赖项包含的支持库引起的。值得注意的是,几乎所有Google / Android支持库(CardView,RecyclerView等)都包含最新的v4和v7支持库。所以这通常会导致冲突。
您需要做的是:
implementation project(':app-base')
api
代替implementation
,用于基本模块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
而只使用您需要的支持库中的特定项。请参阅Support Library Packages,了解如何仅添加支持库中的特定项目。
答案 1 :(得分:0)
尝试一下。 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'