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')を追加
