Googleから新規 Androidアプリの登録について今年の 8月から「少なくとも Android8.0(APIレベル26)をターゲットにする必要がある」との通知を受けた。

また、古いアプリでアップデートしないものは「そのまま」で問題無い様だが、今年の 11月以降にアップデートする場合にはやはり「APIレベル26」以上を指定する必要があるとの事だ。

Android Studio を 2.3.3 から 3.1.3 にアップデート

そんなこんなで今年の 8月から Androidの開発環境も変更せざる得なくなって来た様な気がして、いつまでも古い「Android Studio 2.3.3」にしがみ付いているいる訳にもいかない様だ。

まっ、ターゲットを「APIレベル26」にするだけなら Android Studioのアップデートは必要なさそうなのだが、どのみち使い将来「Android Studio」のバージョンは 3.0以上にする時期は必ず訪れるので、この際潔く最新バージョンにアップデートしてしまおうと考えた。

調べて見たら現在の最新バージョンは「3.1.3」らしいのそれをダウンロードしてインストールした。

インストールは何も考えず指示に従って数回ボタンを押して行くだけであっさりと終了した。

既存のアプリをコンパイルしてみる

まずは既存のアプリをそのままコンパイルしてみた。

案の定、訳の判らないエラーがずらずら〜っと表示される。

何処をどう言う風に弄れば良いのか皆目検討もつかないので、ネットで調べて下記の様に順次エラーを潰して行った。

以下、Gradle Scriptの build.gradle(Module:app)というファイルの中身を変更する…

まずは、下記の様なバージョン指定を行うと、幸いにも私の場合殆どのエラーが消えた。

compileSdkVersion 27
buildToolsVersion "27.0.3"

defaultConfig {
    minSdkVersion 15
    targetSdkVersion 27
}

次いで、出力ファイル名変更の所でエラーがあったので下記の一部修正を行いエラーが消えた。

android {
    applicationVariants.all { variant ->
        /* リリースビルド時 */
        if (variant.buildType.name.equals("release")) {
            variant.outputs.all { output ->
                if (output.outputFile != null && output.outputFile.name.endsWith('.apk')) {
                    def applicationId = defaultConfig.applicationId
                    def apps = applicationId.split("\\.")
                    def name = apps[apps.length-1]
                    def newName = "${name}.apk"
                    outputFileName = newName
                }
            }
        }
    }
}

この時点で残ったエラーは「lint」がなんたら…というものだけで、取り敢えず下記を追加してエラーが消えた。

allprojects {
    repositories {
        google()
        jcenter()
    }
}

私の場合 Androidはほぼど素人みたいな人だから、なんで上記の様な修正でエラーが消えるのか良く判ってないのだが、ネットで調べながら適当に試行錯誤しつつやってみた所上手く出来たので結果オーライと言う事で。

まとめ

念の為コンパイル結果を Android端末実機で動作確認した所問題無しだったし APKビルドも正常に完了したので、私の場合はこれで「Android Studio 3.1.3」への移行作業は完了です。

ついでに既存開発済みの 32本の全アプリを再コンパイルしてみたけど、こちらも全て問題無しでした。

結果的に build.gradle(Module:app)ファイルを弄っただけで、自前のゲームソースプログラムを弄る必要は一切ありませんでした。

やったね!

それでは、また〜♡