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:10:13-72的属性provider#com.google.firebase.provider.FirebaseInitProvider@authorities 的值(com.iamkaan.packagename.firebaseinitprovider)也存在于AndroidManifest.xml:33:350-423的值(com.iamkaan.packagename.base.firebaseinitprovider)。 建议:在AndroidManifest.xml:8:9-12:39的元素中添加“tools:replace="android:authorities"”,以覆盖。应用程序主清单(此文件),第9行
最后一个问题与firebase-core
依赖关系有关,因为当我从以下更改我的应用程序gradle依赖关系时:
implementation project(':app-base')
to
implementation (project(':app-base')) {
exclude group: 'com.google.firebase', module:'firebase-core'
}
我成功运行了应用程序。但是在运行时(第一次调用)我开始收到以下错误信息:
Default FirebaseApp is not initialized in this process com.iamkaan.packagename. Make sure to call FirebaseApp.initializeApp(Context) first
实际上,直到应用程序实现“即时应用程序”之前,并没有调用,但是它仍然在工作。无论如何,在第一个FirebaseDatabase调用之前,我在各个地方添加了调用,但没有起作用。
包名
- 应用程序清单:
com.iamkaan.packagename
- 应用程序gradle应用程序ID:
com.iamkaan.packagename
- 应用程序基础清单:
com.iamkaan.packagename.base
- 应用程序基础gradle文件没有applicationId