AndroidManifest.xmlのminSdkVersionを変更しても反映されずビルドできない

さて、ADTのプロジェクトをAndroid Studioへ移す過程ではまったエラー対策の続きです。Android Studioはバージョン3.2.1です。

前回のことがあり、ようやくエラーの原因がわかりました。

C:\Android\takuru\ASdriver1\hogehoge\src\main\AndroidManifest.xml:7:5-74 Error:
uses-sdk:minSdkVersion 11 cannot be smaller than version 14 declared in library [com.google.android.gms:play-services:12.0.1] C:\Users\hogehoge\.gradle\caches\transforms-1\files-1.1\play-services-12.0.1.aar\93010549a0eaa8ce0a656b526c4ad348\AndroidManifest.xml as the library might be using APIs not available in 11
Suggestion: use a compatible library with a minSdk of at most 11,
or increase this project's minSdk version to at least 14,
or use tools:overrideLibrary="com.google.android.gms.play_services" to force usage (may lead to runtime failures)
:takuruDriver:processDebugManifest

 

ご丁寧にもダメなAndroidManifest.xmlへのリンクもあります。

「ほうほう。AndroidManifest.xmlのminSdk指定が悪いのね~ 11じゃなくって14にすればいいんでしょー?!」

っとちゃかちゃか直して、Gradle Sync。

そしたら、Sync Failured.なんですよ。なんで。(´・ω・)

また、プロジェクトをBuild→cleanします。

すると、また下記の同じエラー出てるんですよ。

Error:uses-sdk:minSdkVersion 11 cannot be smaller than version 14.....

ファッ?!ってなって、もう一度、AndroidManifest.xmlを見直したり、キャッシュを消したり、.gradleを消したり。
してみても、結果は一緒でした。。。

なんでAndroidManifest.xmlのminSdkVersionを変更しても反映されないの??と思っていたら、偶然にもAndroidManifest.xmlの下記の部分にマウスオーバーしたら

The minSdkVersion value(14) is not used. it is always overridden by the value specified in the Gradle build script (14) ...

ってメッセージが出てるんですよ。

「…あっ…」

そうですね、プロジェクトのbuild.gradleにもminSdkVersionを書くところがあり、そのほうがAndroidManifest.xmlよりも優先されるのだった。

build.gradleにある下記のminSdkVersionを直して、

android {
    compileSdkVersion 26
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "hogehoge.driver"
        minSdkVersion 14 //これを11から変更
        targetSdkVersion 26
    }
//以下略

AndroidManifest.xmlにあるminSdkVersionは紛らわしいので消します。

すると、やっとBuildが通り、Gradle Syncも成功しました!!( ˊᵕˋ )

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です