Java Can';t导入com.google.maps.android:android通过gradle映射utils

Java Can';t导入com.google.maps.android:android通过gradle映射utils,java,android,google-maps,gradle,android-studio,Java,Android,Google Maps,Gradle,Android Studio,我试图将com.google.maps.android:android映射utils导入到我在android Studio 0.5.4中的项目中 我得到这个梯度信息和错误: 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:\

我试图将
com.google.maps.android:android映射utils
导入到我在android Studio 0.5.4中的项目中

我得到这个梯度信息错误

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.
项目清单.xml

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="19" />

我试图在mapsutils的清单中手动更改minSdk版本,但每次gradlesync都会将其更改回来。
是否还有其他可能将库添加到AS 0.5.4中?

目前这似乎是一个bug:

如果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')
    }
  }
}
这当然不是最好的解决方案,但在修复bug之前应该这样做:

  • (匹配库时忽略版本)

显然,您需要将项目更改为版本9,因为utils库中的某些内容需要版本9。更改外部库的清单通常不是一个好主意。您不能只是更改库的版本,然后希望它能工作。你不知道API是什么,所以他们在使用。因此,如果您想使用该库,您需要将minSDK版本设置为9,因为该库无法使用8。我当前的minSDK版本为15@TimRoes图书馆有minSDK 8,游戏服务有minSDK 9。我认为存在冲突,因为这取决于播放服务
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')
    }
  }
}