#はじめに
Androidで古いプロジェクトをGitHubから落としたときにエラーが出まくったため覚書として残しておきます。
#環境・前提条件
移そうとしたプロジェクトは下記のプロジェクトです。これをインストールしたばかりのAndroidStudioで開いたところから始まります。
https://github.com/tdicola/BTLETest
Android Studioのバージョン0.53から3.4.1へのコンバートのようです。
#移行作業
##SDKの設定
APP>java>MainActivityt開いて中のソースを見るとエラーたっぷり。
まず、Android SDKの設定が抜けているようです。
上記Setup SDKを選択してSDKを選択。
開発したいアンドロイドのバージョンを選んで選択しましょう。今回は自分の端末(Android8.0)で使いたいので、Android API 25(Android 7.1.1に対応)を選びます。
それでもまだMainActivityでエラーを吐いている。プロジェクト自体に対応するAndroidのバージョンが設定されていないようだ。
Fileメニュー>Project Structureを選択。
Modulesを選択肢、Default Configをクリックすると対象とするAPIレベルを選択できる。
先程と同様に、Target SDK VersionとMin SDK Versionを25に設定。
でもまだエラーが起こる。この設定だけではダメそうなので、続いてエラーを吐いているgradleの設定を確認する。
##Gradleの設定
軽く調べた感じだと、プロジェクトとアプリのビルド設定(build.gradle)が古いようだ。
エラーで検索したところ、古いバージョンでの移行時の記事を発見。
上記画像のエラーを吐いている部分をAndroid Studioのバージョンに合わせれば良いようだ。
Gradleのバージョンについての記事をQiita上に発見。そこからリンクをたどり、2019/06/21時点でのバージョンを調べた。とりあえず、現時点のbuild.gradleおよびgradle-wrapper.propertiesは下記のようになるようだ。
「minifyEnabled」が重要。古いプロジェクトをインポートする際はこれに変更する必要があるようだ。
参考:https://stackoverflow.com/questions/27233800/android-studio-could-not-find-method-runproguard-for-arguments
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
minSdkVersion 25
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
}
}
allprojects {
repositories {
mavenCentral()
google()
}
}
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl = https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
##動作確認
上記までの設定でビルドが通るようになり、SDKやらなんやらが古いとかで何度か必要なファイルをダウンロードし、Android Studioに勧められるまま結局SDKを28にアップロードして、コンパイルが通りました。