読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

eclipseからandroidStudioに移行しようとしたときに苦労したこと(未達成)

Android

概要

eclipseからandroid studioに移行する際に直面したエラーと対処法

詳細

今のandroidstudioはeclipseのプロジェクトをそのままimportできるらしい
eclipseプロジェクトを、androidstudioからimportする

そのままビルドすると以下のgradleエラー

Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1


プロジェクト直下のbuild.gradleは以下の状況

dependencies {
    compile project(':volley')
    compile project(':facebookSDK')
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:appcompat-v7:19.0.0'

    compile files('libs/apache-mime4j-core-0.7.jar')
    …
}

「com.android.support:support-v4:21.0.0-rc1はandroid Lでしか使えないよ」って言っているように見えるのだが、support v4の指定はしていなさげ
facebookSDK build.gradleの中を見てみる

dependencies {
    compile 'com.android.support:support-v4:+'
    compile files('libs/bolts.jar')
}

ここで最新版を見ているからだった
ここを以下のように修正

dependencies {
    compile 'com.android.support:support-v4:20.0.0'
    compile files('libs/bolts.jar')
}

するとgradleのエラーは消えた
そのかわり、以下のエラーが出てきた

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)

dexファイルで何やらエラーが起きている様子だが…
解決策として、以下の方法があるが…
java - UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define - Stack Overflow

apply plugin: 'crashlytics'

これがgradleで実行できない
これを調べると

gradle - Crashlytics with Android Studio build error - Stack Overflow
gradleのバージョンの問題のようだが…

    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }

build.gradleのバージョンは問題ない様子…

今回はここでギブアップ
ライブラリがコンフリクトしていると思うのだが…難しい…
googleの配布しているソースももAndroidStudioに移行してきているのでAndroidStudioに早く移行したいのだがー