トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

【Unity2019.3】、AndroidManifest、GradleエラーでAndroidビルドできない

エラー

Unity2019.3でOculusIntegrationを入れたアプリをAndroidビルドするとエラーが出る。

f:id:bibinbaleo:20191225154513p:plain

TroubleShootを押すと下のページに行く

Unity - Manual: Gradle troubleshooting

エラーの下のほうに貼ってあるリンク

Gradle | Search for Help with Gradle

Merge multiple manifest files  |  Android Developers

AndroidManifestがいくつかあってバッティングしているのが原因?

環境

Unity2019.3.0f3

OculusIntegration Version12

AndroidMinimumAPILevel 7.1(25)

解決方法

以前もAndroidManifestで同じようにバッティングしてエラーが起きたときに参考したサイト↓

qiita.com

UnityプロジェクトでAndroid向けにビルドすると[Project Folder]/Temp/gradleOut/src/main/AndroidManifext.xmlが生成されるので[Project Folder]/Assets/Plugins/Android/AndroidManifest.xmlにコピーして

をまねた。

Temp/gradleOut/src/main/の中にあるAndroidManifestを

Assets/Plugins/Androidにコピー。Androidフォルダは自分で作った。

そしてAndroidManifestの <application~ の中に

android:allowBackup="false"

tools:replace="android:allowBackup"

を書いたらビルドできた!

・・・けどアプリを入れたら起動しない><

長くなるのでそれについては別記事で考える。

 

追記:結局2018.3の時にtempに生成されていたAndroidManifestをAssets/Plugins/Androidにコピーしたら起動した。

bibinbaleo.hatenablog.com

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

以下は試した事、流れとか゚

AndroidManifest

エラー文に

Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:5:3-121 to override.

と書いてある。

Temp

下の記事を参考にTempの中のAndroidManifestに

tools:replace="android:allowBackup"

を書いた。

y-anz-m.blogspot.com

しかしビルドすると追記した分が消える。tmpだから当然か

Plugins/Android

以前もAndroidManifestで同じようにバッティングしてエラーが起きたときに参考したサイト↓

qiita.com

UnityプロジェクトでAndroid向けにビルドすると[Project Folder]/Temp/gradleOut/src/main/AndroidManifext.xmlが生成されるので[Project Folder]/Assets/Plugins/Android/AndroidManifest.xmlにコピーして

をまねてコピーしたAndroidManifestの中にtools:replace="android:allowBackup"

を書いたらビルドできた!

ただQuest内でアプリを選んだ時に起動しなかった。

android:allowBackup="false" も書かないといけなかったみたい

Gradle

Gradleのエラーで検索して出た下の記事

teratail.com

この質問に貼ってあった下の記事を参考に、プロジェクトをExportしてAndroidStudioで開いてgradleのアップデートをした。

nn-hokuson.hatenablog.com

でもダメだった。

エラー文的にすこしちがうかもしれをよく読んでなかったのでここでの対処は無意味だったかもしれない。

AndroidStudioのSDK

下の方は恐らくAndroidStudioのSDKbuild-Toolsを最新にしたのだと思う。

qiita.com

AndroidStudioから最新のSDK

f:id:bibinbaleo:20191225155044p:plain

SDKbuild-Toolsをインストールした。

f:id:bibinbaleo:20191225155047p:plain

AndroidStudio側でもUnityのSDKの場所を参照しているので、

(C:\Users\ユーザー名\AppData\Local\Android\Sdk)の場所にした。

f:id:bibinbaleo:20191225155049p:plain

Unity2019でのAndroidビルド

もともとUnityHubからインストールできるSDKを使っていた。

こちらのとおりにSDKのパスをUnityのものではなくAndroidStudioのものにした。

qiita.com

f:id:bibinbaleo:20191225155219p:plain

framesynthesis.jp

qiita.com

teratail.com

そのほか試した事

プロジェクトフォルダの中にAndroidManifestは自分では作っていない

Oculus>VR>Editorの中にAndroidManifest.OVRSubmissionがある。

f:id:bibinbaleo:20191225160021p:plain

これを消した

 

昔OculusBuild7でおかしくなった時に下記の記事の「コールバックで対策する」部分をやった。

AndroidManifestにスクリプトから何か書き込むもの。

qiita.com

bibinbaleo.hatenablog.com

もういらないはずなのでこのスクリプトを消す。

 

Unityを再起動してTempのAndroidManifestを消す