【问题标题】:Inconsistent minSdkVersion across libraries (Android Studio 0.5.1 + Gradle 0.9)跨库的 minSdkVersion 不一致(Android Studio 0.5.1 + Gradle 0.9)
【发布时间】:2014-03-11 23:23:18
【问题描述】:

我已将我的 Android Studio 升级到 0.5.1 版,负责处理 migration 进程,该进程必须应用于我的项目和模块中的 build.gradle 文件。

在引入了最新版本的 GooglePlayServices(4.2.42) 和 Android-Map-Utils 之后,并非所有时候,我都面临以下编译错误:

Information:[/Users/.../build/exploded-aar/com.google.maps.android/
android-maps-utils/0.3/AndroidManifest.xml:2,
 /Users/.../build/exploded-aar/com.google.android.gms/play-services/4.2.42/
AndroidManifest.xml:3]
 Main manifest has <uses-sdk android:minSdkVersion='8'> 
but library uses minSdkVersion='9'

有人遇到同样的问题吗? 有什么解决办法吗?

非常感谢, 西蒙娜

编辑:

看来我不是唯一遇到这个问题的人。

https://github.com/googlemaps/android-maps-utils/issues/60 https://code.google.com/p/android/issues/detail?id=66109

【问题讨论】:

    标签: android gradle android-studio build-process google-maps-android-api-2


    【解决方案1】:

    如果您有其他库的问题,您可以修改此 hack:https://gist.github.com/goldierox/9533466

    Android 错误:https://code.google.com/p/android/issues/detail?id=66109

    编辑: 该错误已得到修复。

    您可以使用新的 manifest-merger(默认启用)

    http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

    要替换 minSdk,您需要这样的东西:

    <uses-sdk tools:replace="minSdkVersion" android:minSdkVersion="9" android:targetSdkVersion="19"/>
    

    【讨论】:

      【解决方案2】:

      根据http://developer.android.com/google/play-services/setup.html 的文档:

      注意:Google Play 服务 4.0.30(2013 年 11 月发布)及更新版本 版本需要 Android 2.3 或更高版本。如果您的应用支持 Android 2.2,您可以继续使用 Google Play 服务 SDK 进行开发,但必须从 SDK 安装适用于 Froyo 的 Google Play 服务 经理。

      Android 2.3 是 API 级别 9,这意味着您必须将 minSdkVersion 声明为 9 或更高。你可以通过你的 build.gradle 文件来做到这一点:

      android {
          ...
          defaultConfig {
              minSdkVersion 9
              ...
          }
      }
      

      【讨论】:

      • 谢谢 Scott,我已经知道了,并且该应用程序的目标是 minSdkVersion 9。从错误中可以看出,这与当前为 9 的 GooglePlayServices 的 minSdkVersion 和 GoogleMapsUtils 使用的 minSdkVersion 有关那是 8。
      • 你是在build.gradle文件中设置为9吗?构建文件会覆盖您在 AndroidManifest.xml 中放置的任何内容。
      • AndroidManifest.xml 不包含任何 sdk 版本声明,所有内容都在 build.gradle 中作为 defaultConfig { minSdkVersion 9 targetSdkVersion 19 versionCode 9 versionName "v2.0.0" } 进行管理
      【解决方案3】:

      如果你用 maven 编译什么

      dependencies {
      compile 'com.google.maps.android:android-maps-utils:0.3+'
      

      }

      请注意,此版本依赖于播放服务 3+。我手动克隆了 git repo 并将其更改为 4.3.+。问题解决了。根据这个https://github.com/googlemaps/android-maps-utils/issues/75 修复将被推送到 Maven 中心,希望很快。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 2014-04-15
        • 1970-01-01
        • 2014-08-26
        相关资源
        最近更新 更多