なんというか、トホホな原因でした。
古いソースファイルを大事に使っている関係で、これまで Android Studio 2.2 を使い続けていたのですが、ストアにアップロードするために Android Studio 3 以上を使用する必要があるとの情報があり、Android Studio 3.4 を使ってみました。
いろいろバージョンアップしてプロジェクトを Gradle に移行したりして、だいたいうまくコンパイルできるようになってきたのですが、「Gradle 5.1.1 にバージョンアップしますか?(強く推奨します)」的なメッセージが表示されて Gradle をバージョンアップしたら、コンパイルがエラーになってしまうようになってしまいました。
エラーメッセージは下記のとおりです。
Android resource linking failed C:\Users\username\Documents\Android Studio\APP1\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:494: error: expected reference but got (styled string) " #000000 " style;name=titleBackground:1,7 item;name=android:background:1,7. C:\Users\username\Documents\Android Studio\APP1\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:510: error: expected reference but got (styled string) " #000000 " style;name=titleBackground:1,7 item;name=android:background:1,7. error: failed linking references.
Build Output の画面のツリーを開いてみると下記のようなメッセージも出力されており、どうやら AAPT2 という仕組みのあたりでエラーになっているようです。
Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
ググってみたところ、やはり AAPT2 に関するエラーについてはいろいろと経験されている先人がいらっしゃるようで、下記のような情報が得られました。
1.プロジェクトレベルの build.gradle ファイルに google() を追加する。(AAPT2 の提供元が変わっているため)
repositories { google() jcenter() }
2.v4 サポートパッケージを読み込む。
configurations.all { resolutionStrategy { force 'com.android.support:support-v4:27.0.2' } }
3.build tools の classpath を追加する。
classpath 'com.android.tools.build:gradle:3.2.0-alpha13'
4. アプリケーションレベルの build.gradle ファイル中の compileSdkVersion と buildToolsVersion をあわせる。さらに targetSdkVersion もあわせる。
compileSdkVersion 29 buildToolsVersion "29.0.1" defaultConfig { targetSdkVersion 29 (以下略)
上記をやってみたのですが、なかなかエラーが解消しませんでした。
だいぶ悩んでしまったのですが、試しにエラーメッセージ中に表示されている values.xml のリンクをクリックして表示してみたところ、styles.xml の中にエラーがあることがわかりました。
titleBackground has already been defined in this folder (Previously defined here)
どうやら titleBackground という名前が重複して定義されているようです。
今までの環境ではエラーにならずにコンパイルできていたのですが、新しい環境になってチェックが厳密になったのかもしれません。
この部分を修正して、エラーは表示されなくなりました。
0件のコメント