Pocket

筆者作成のShuffleNaviのtargetSdkVersionを25から26へアップデートしました。その作業メモです。

現状のまま、ビルド1回め

プロジェクトのgradleが2.14.1と古いので、Ubuntu 18.04 の Java 11がわからない、というエラーのようです。~/.bashrcに追加設定して、Android Studio同梱のJava 1.8を参照するようにしました。

ビルド2回め

見たこともないエラーが。mipsel-linux-android は、MIPSのことですね。

注: これまで NDK は 32 ビットおよび 64 ビットの MIPS をサポートしていましたが、NDK r17 でこのサポートは削除されました。

https://developer.android.com/ndk/guides/abis?hl=ja

android-ndk / ndkChangelog r20 によると

This version of the NDK is incompatible with the Android Gradle plugin version 3.0 or older. If you see an error like No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android, update your project file to use plugin version 3.1 or newer. You will also need to upgrade to Android Studio 3.1 or newer.

(Google翻訳)
このバージョンのNDKは、Android Gradleプラグインバージョン3.0以降とは互換性がありません。 NDK toolchainsフォルダにABIのプレフィックス:mips64el-linux-androidがないなどのエラーが表示される場合は、プラグインバージョン3.1以降を使用するようにプロジェクトファイルを更新してください。 また、Android Studio 3.1以降にアップグレードする必要があります。

https://github.com/android-ndk/ndk/wiki/Changelog-r20

"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"のエラーが表示されたら、Gradle Plugin Version を 3.1以上にアップデートしてください、とのこと。

https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google を見ながら、3.1.xの中で新しい 3.1.4を試します。

ビルド3回目

gradle plugin 3.1.4が見つからないようです。

gradle pluginとgradle本体には対応関係があります。https://developer.android.com/studio/releases/gradle-plugin.html
plugin 3.1.0+ は、gradle 4.4以上が必要です。

https://services.gradle.org/distributions/
ここを見て、gradle 4.4.1 を試します。

./gradle/wrapper/gradle-wrapper.properties を次のように編集しました。

ビルド4回め

gradle plugin 3.1.4 が見つからない、とのことです。

別のプロジェクトと比較して、project/build.gradle に google()を追加しました。

ビルド5回め

compileは非推奨になり、implementationを使うように。SDK 25.0.3は古いから無視するよ、代わりに27.0.3を使ったよ、とのこと。

buildToolsVersionを27.0.3にして、compileをimplementationに置換しました。

ビルド6回め

リリースapkのファイル名にアプリidやversion_code、日時を含めて、jp.co.ninton.shufflenavi_r22_v1.7_2019-07-16-10-25-35.apk のようなファイル名にする処理を追加していますが、その処理でエラーです。

ビルド7回め

ようやく、./gradlew assembleRelease が通りました。

ここからです。targetSdkVersion 25を26に、サポートライブラリを28.0.0にしてみます。

ビルド8回め

minSdkVersion=14にしてくださいとのこと。

ビルド9回め

いろいろエラーが...

https://mvnrepository.com/artifact/com.android.support/appcompat-v7
を見ながら、バージョンを下げてみます。

ビルド10〜12回め

同じく大量のエラー。27.0.2、26.1.0に下げても大量のエラー。

25.4.0に下げてみます。

ビルド13回め

サポートライブラリのバージョンを25.4.0に下げて、ようやく、ビルドできました。