当我从 Android 迁移到 AndroidX 时,在我的项目中实现 google play 服务时出错。解决方案可能是啥?
Posted
技术标签:
【中文标题】当我从 Android 迁移到 AndroidX 时,在我的项目中实现 google play 服务时出错。解决方案可能是啥?【英文标题】:While I migrate from Android to AndroidX , Error in implementing google play services in my projects. What might be the solution?当我从 Android 迁移到 AndroidX 时,在我的项目中实现 google play 服务时出错。解决方案可能是什么? 【发布时间】:2019-01-08 00:21:30 【问题描述】:这是我的应用级别build.gradle
apply plugin: 'com.android.application'
apply plugin: 'realm-android'
//apply plugin: 'io.fabric'
android
compileSdkVersion 28
defaultConfig
applicationId "threecallistos.jumperr"
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'com.google.android.material:material:1.0.0-alpha3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'androidx.multidex:multidex:2.0.0'
gradle.properties
在这里
org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.enableJetifier=true
当我删除时
implementation 'com.google.android.gms:play-services-maps:15.0.1'
来自app.build
文件,它工作正常。但我必须使用谷歌地图和服务,所以我到处搜索,但找不到任何合适的解决方案。
我在 github 中找到了一个建议
我相信这是因为 com.google.firebase 传递依赖于 com.android.support:support-v4。为了解决这个问题,您应该能够在 gradle.properties 文件中设置 android.enableJetifier=true,这将“自动转换现有的第三方库,就好像它们是为 AndroidX 编写的一样”
我已经这样做了,但是没有用!
我在构建/运行项目时出错
程序类型已存在: android.support.v4.app.INotificationSideChannel Messagekind=ERROR, text=程序类型已经存在: android.support.v4.app.INotificationSideChannel,来源=[未知 source file], tool name=Optional.of(D8) 原因: com.android.builder.dexing.DexArchiveMergerException:出错时 合并 dex 档案:
请给我一些解决方案。
【问题讨论】:
【参考方案1】:存在多个完全不同错误的问题,这些错误实际上都源自迁移到 Android Studio v3.1 中的 AndroidX 库。我遇到了各种奇怪的错误,如果不返回支持库就无法解决。因此,对于不同的问题,您可能会看到相同的答案。因为这些问题是关于描述和上下文差异很大的错误,所以它们不是重复的问题,因此都应该用这个解决方案来回答。具有讽刺意味的是,这个解释比解决方案要长,而且是为了帮助管理员理解。
解决办法是: Android Studio v3.2+ 解决了这个问题。它还在 Refactor 菜单下添加了“Migrate to AndroidX”项,以使迁移更容易。无需变通或回滚。迁移到 AndroidX 库很重要,因为旧的支持库将在稳定的 v28 支持库发布后终止。
从 beta 渠道更新 Android Studio 以使用 3.2+ 或等到在不久的将来发布稳定版本。
编辑:9/25/18 - v3.2 稳定版本现已在稳定频道中提供。
【讨论】:
以上是关于当我从 Android 迁移到 AndroidX 时,在我的项目中实现 google play 服务时出错。解决方案可能是啥?的主要内容,如果未能解决你的问题,请参考以下文章
AndroidX迁移-androidx.legacy:legacy-support-v4或androidx.appcompat:appcompat
Android源码中com.android.support依赖迁移到AndroidX库
通过更新到 Android Studio 3.2 迁移到 AndroidX
Android Studio 将 androidx 迁移到 android 8.1 [关闭]
我如何将颤振项目迁移到 androidx:任务“:app:preDebugBuild”的执行失败。 > Android 依赖 'androidx.versionedparcelable