iam*_*aan 6 android firebase android-gradle-plugin firebase-realtime-database android-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
Run Code Online (Sandbox Code Playgroud)
通过在即时应用程序之前显式添加以下依赖项,我能够解决此问题
implementation 'com.android.support:support-v4:27.0.2'
implementation 'com.android.support:support-media-compat:27.0.2'
Run Code Online (Sandbox Code Playgroud)
但是对于即时应用程序,即使我在功能模块(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')
Run Code Online (Sandbox Code Playgroud)
至
implementation (project(':app-base')) {
exclude group: 'com.google.firebase', module:'firebase-core'
}
Run Code Online (Sandbox Code Playgroud)
我能够运行该应用程序.但是这一次,我开始在运行时遇到以下错误(我第一次打电话FirebaseDatabase.getInstance())
Default FirebaseApp is not initialized in this process com.iamkaan.packagename. Make sure to call FirebaseApp.initializeApp(Context) first
Run Code Online (Sandbox Code Playgroud)
它确实没有被调用,但是直到应用程序即时实施才开始工作.无论如何,我在第一次FirebaseDatabase调用之前将调用添加到了各个地方,没有任何帮助.
包名称
com.iamkaan.packagenamecom.iamkaan.packagenamecom.iamkaan.packagename.base我遇到了类似的情况,这是由依赖项包含支持库引起的。值得注意的是,几乎所有 Google/Android 支持库(CardView、RecyclerView 等)都包含最新的 v4 和 v7 支持库。所以这通常会引起冲突。
你需要做的是:
implementation project(':app-base')仅继续使用api而不是用于基本模块ieimplementation中包含的支持库build.gradleapi 'com.android.support:support-v4:27.0.2'build.gradle文件中再次添加build.gradle文件,请排除每个项目的支持库(请参见下面的示例)
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'
}
Run Code Online (Sandbox Code Playgroud)
我还建议不要使用com.android.support:support-v7:27.0.2,而是仅使用您需要的支持库中的特定项目。请参阅支持库包,了解如何仅添加支持库中的特定项目。
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |