📱

シミュレータも実機も起動するのに Android のリリースビルドができなかった件

2018/12/22に公開

前提

  • AndroidStudio: 3.1
  • Gradle version: 4.4
  • ReactNative: 0.57.1
  • リリースに必要なもろもろ 参考サイト は実施済み

エラー内容

error: failed linking references.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-config:verifyReleaseResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

解決策

android ディレクトリ直下の build.gradle を開き、 allprojects の下あたりに以下の記述を追加

compileSdkVersionbuildToolsVersion の値は、それぞれ buildscript の中にある ext 内の同じ項目をコピペする。

subprojects {
    afterEvaluate {
        project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion = 27
                    buildToolsVersion = "27.0.3"
                }
            }
    }
}

原因

利用しているライブラリに設定してあるビルド条件と、ビルドするマシンに入っているビルドツールのバージョンが不一致することに起因するっぽい。
気の利いたライブラリは、ビルドツールの指定などを本体に合わせるような記述をしてあるのだけど、中にはバージョンをハードコーディングしているものもあるらしい。つらい。

参考

Discussion