无法通过 gradle 导入 com.google.maps.android:android-maps-utils
Posted
技术标签:
【中文标题】无法通过 gradle 导入 com.google.maps.android:android-maps-utils【英文标题】:Can't import com.google.maps.android:android-maps-utils via gradle 【发布时间】:2014-05-29 14:29:19 【问题描述】:我尝试在 Android Studio 0.5.4 中将com.google.maps.android:android-maps-utils
导入到我的项目中。
我得到这个 Gradle 信息和错误:
Information:[C:\Users\Gast1_000\android studio projects\GeoPicture\app\build\exploded-aar\com.google.maps.android\android-maps-utils\0.3\AndroidManifest.xml:2, C:\Users\Gast1_000\android studio projects\GeoPicture\app\build\exploded-aar\com.google.android.gms\play-services\4.3.23\AndroidManifest.xml:3] Main manifest has <uses-sdk android:minSdkVersion='8'> but library uses minSdkVersion='9'
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merging failed. See console for more info.
我的 build.gradle:
dependencies
compile 'com.android.support:support-v13:+'
compile 'com.google.android.gms:play-services:4.3.+'
compile 'com.google.maps.android:android-maps-utils:0.3'
项目清单.xml
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="19" />
我尝试在 maps-utils 的清单中手动更改 minSdk 版本,但每次 gradle 同步都会将其更改回来。 在 AS 0.5.4 中添加库还有其他可能吗?
【问题讨论】:
显然您需要将项目更改为版本 9,因为 utils 库中的某些内容需要版本 9。更改外部库的清单通常不是一个好主意。 您不能只更改库的 minSdkVersion 并希望它能够工作。你不知道他们使用的是什么 API。因此,如果您想使用该库,则需要将 minSdkVersion 设置为 9,因为该库无法使用 8。 我当前的minSDK版本是15 @TimRoes 图书馆有 minSDK 8,而播放服务有 minSDK 9。我认为存在冲突,因为它取决于播放服务 【参考方案1】:目前这似乎是一个错误:https://github.com/googlemaps/android-maps-utils/issues/60
如果 Gradle 覆盖了您的更改,只需使用 Gradle 进行这些更改(如上面链接中的建议);)
将以下代码块添加到 android .. 块内的构建文件中。
applicationVariants.all variant ->
variant.processManifest.doFirst
File manifestFile = file("$buildDir/exploded-aar/com.google.maps.android/android-maps-utils/0.3/AndroidManifest.xml")
if (manifestFile.exists())
String content = manifestFile.getText('UTF-8')
content = content.replaceAll(/minSdkVersion="8"/, 'minSdkVersion=\"9\"')
manifestFile.write(content, 'UTF-8')
这当然不是最好的解决方案,但应该在错误修复之前这样做:
https://code.google.com/p/android/issues/detail?id=66109(匹配库时忽略 minSdkVersions)【讨论】:
以上是关于无法通过 gradle 导入 com.google.maps.android:android-maps-utils的主要内容,如果未能解决你的问题,请参考以下文章
无法解决:带有 gradle 的 IntelliJ Idea 中的 com.google.android.gms:play-services
无法通过 `api` 方法从 Android 模块解析主题和样式
Gradle 无法解析 androidx.appcompat:appcompat:1.1.0-alpha01 和 com.google.android.gms:play-services-nearby