LoginSignup
34
34

More than 5 years have passed since last update.

Android Studio 0.8.1でのsupport-v4関連トラブル

Posted at

Android Studioがついにベータになりました。
Android L preview, Android 4.4Wなどのリリースに合わせてSDK周りも多数バージョンアップされていますが、これを反映すると、どうやらsupport-v4ライブラリを使っているプロジェクトでエラーが発生することがあるようです。
(おそらく、support-v4に依存したライブラリを含んでいるプロジェクト)

以下は、問題の内容と解決策(一部)です。

エラー内容

エラー1

Error:Module version com.android.support:support-v13:19.1.0 depends on libraries but is not a library itself

エラー2

Error:The project is using an unsupported version of the Android Gradle plug-in (0.11.2)
<a href="fixGradleElements">Fix plug-in version and re-import project</a>

エラー3

Error:Execution failed for task ':app:processDevDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1

エラー4

Execution failed for task ':app:processDgateDebugManifest'.
> Manifest merger failed : Attribute manifest@package value=(com.xxxx) from AndroidManifest.xml:3:5
    is also present at com.android.support:support-v4:20.0.0:15:70 value=(android.support.v4)
    Suggestion: add 'tools:replace="package"' to <manifest> element at AndroidManifest.xml:2:1 to override

(参考)環境

  • OS X 10.9
  • Android Studio 0.8.1
  • Android SDK Tools r23
  • Android SDK Platform-tools r20
  • Android SDK Build-tools r19.1
  • Android Support Repository r6
  • Android Support Library r20
  • Android Gradle Plugin 0.11.+
  • Gradle 1.10

(参考)設定

dependencies部分の抜粋です。

build.gradle
dependencies {
    compile 'com.android.support:support-v13:19.+'
    compile 'com.github.ksoichiro:richbuttons:0.1.1@aar'
    compile 'com.mcxiaoke.viewpagerindicator:library:2.4.1'
    dgateCompile 'com.deploygate:sdk:3.1'
}

解決策

Stack OverflowやGoogle Groupでも、以下のような情報がここ数日分でいくつも見つかります。
Manifest merger failed : uses-sdk:minSdkVersion 14

最終的に、こちらに書かれている方法+αで解決しました。
http://stackoverflow.com/a/24445639

support-v13アップデート

1つ目のエラーの解決策です。
19.1.+から20.+にアップデートしました。

Android Gradle Plugin&Gradleのアップデート

2つ目のエラーの解決策です。

  • Pluginを0.11.+から0.12.+に変更しました。
  • Gradleは1.10から1.12にアップデートしました。

maven-metadata.xmlの修正

3つ目のエラーの解決策です。
あまりやりたくない方法ではありますが、
Support Libraryのmaven-metadata.xmlを編集し、以下のようにversion 21.0.0-rc1の部分をコメントアウトします。
(場所は$ANDROID_HOME/extras/android/m2repository/com/android/support/support-v4)

maven-metadata.xml
      <!--<version>21.0.0-rc1</version>-->

上記のプロジェクトではsupport-v4を直接使ってはいませんが、間接的に使っている(依存している)ライブラリが入っていたためと思われます。

どうしても解決しなかった問題...

4つ目のエラーはどうしても解決できませんでした。
上記のプロジェクトでは、あるProductFlavorにAndroidManifest.xmlを分けて配置していたのですが、こreが原因のようです。

エラーメッセージ中にSuggestionとある内容に従い、tools:replace="package"<manifest>タグに追加してみましたがダメでした。
以下が同じ問題と思われます。
tools:replace="package" deadlock. Strange behaviour

ここで触れられていたuseOldManifestMerger trueの設定もうまくいかず(さらにエラーが多数発生)。
バグ修正をレビューに出すとのことなので、反映を待つしかなさそうです。

上記のAndroidManifest.xmlは、DeployGate用のビルドでパーミッションを追加するために用意していたものだったので、一時的にAndroidManifest.xmlを削除することにしました。
(削除するとエラーは消えましたが、とても解決とは言えないですね。。。)

34
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
34