Android/開発環境/ADTからAndroidStudioへの移行
提供: 初心者エンジニアの簡易メモ
目次
- 1 ADTのプロジェクトExport
- 2 AndroidStudioへImport
- 3 Android_Plugin_Versionを設定
- 4 移行エラー
- 5 dir構造修正
- 6 not found in root projectエラーが発生する場合
- 7 Default Activity not foundエラーが発生する場合
- 8 Manifest merger failed with multiple errors, see logs Information:BUILD FAILEDエラー
- 9 cannot be smaller than versionエラーの場合
- 10 :app:transformClassesWithDexForDebugエラーの場合
- 11 jarライブラリを開発用ライブラリに切り替える方法(例:wplibnonライブラリ)
ADTのプロジェクトExport
- ADT側のプロジェクトを選択
- Export/Android/Generate_Gradle
- build.gradleファイルを作成
AndroidStudioへImport
- AndroidStudioのFile/Project_Import
- buile.gradleがあるフォルダを選択
Android_Plugin_Versionを設定
- Open Module Settingsのprojectを開きいかが空であれば入力
Gradle version:2.2.1 Android Plugin Version:1.0.0 Android Plugin Repository:jcenter Default Library Repository:jcenter
移行エラー
- AndroidIdが少し間違って"have you declared this activity in your AndroidManifest.xml"のエラーが出る件について
AndroidIdを正常なIDに変更して修正
dir構造修正
例:wplibnonは独自ライブラリです(ライブラリなどがない場合は削除、適宜変更ください)
mkdir -p app/src/main mv res app/src/main/ mv src app/src/main/java mv AndroidManifest.xml app/src/main/AndroidManifest.xml mv libs app/
settings.gradleに以下を追加
include ':app', ':wplibnon'
プロジェクト直下のbuild.gradleを以下に書き換える
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0' } } allprojects { repositories { jcenter() } }
app/build.gradleを各プロジェクトに合わせて以下のように書き換える
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.1" defaultConfig { applicationId "info.nonip.android.example" minSdkVersion 13 targetSdkVersion 21 versionCode 2 versionName "2.0.1" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':wplibnon') compile 'com.android.support:support-v13:21.0.3' compile 'com.android.support:support-v4:21.0.3' }
build.gradleに以下記述があるとファイルが見つからずビルドできないかも
sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } }
not found in root projectエラーが発生する場合
- settings.gradleを確認する
- .ideaのディレクトリと*.imlを削除
- 再度projectをimportして.idea、*.imlを自動生成する
- 確認
Default Activity not foundエラーが発生する場合
Run/Edit ConfigurationでActivityをLaunch Default Activityにする
Manifest merger failed with multiple errors, see logs Information:BUILD FAILEDエラー
タグが被っていることが原因。
メイン側とライブラリ側にapplicationタグがあればライブラリ側のapplicationタグを削除すれば良い。
cannot be smaller than versionエラーの場合
Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version 11 declared in library [SampleHoge:hogesdk:unspecified] /d/android/sample/SampleHoge/app/build/intermediates/exploded-aar/SampleHoge/hogesdk/unspecified/AndroidManifest.xml Suggestion: use tools:overrideLibrary="jp.co.test.hogesdk" to force usage
メイン側とライブラリ側でbuild.gradleのminSdkVersionのバージョンがあってない可能性があるのでそこを確認
:app:transformClassesWithDexForDebugエラーの場合
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;
build.gradleのライブラリが被っている可能性があるのでそこを確認
jarライブラリを開発用ライブラリに切り替える方法(例:wplibnonライブラリ)
- メイン側のbuild.gradleのdependenciesのwplibnon.jarを削除
- メイン側のbuild.gradleのdependenciesにcompile project(':wplibnon')を追加