エラー
Unity2019.3でOculusIntegrationを入れたアプリをAndroidビルドするとエラーが出る。
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で同じようにバッティングしてエラーが起きたときに参考したサイト↓
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にコピーしたら起動した。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以下は試した事、流れとか゚
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"
を書いた。
しかしビルドすると追記した分が消える。tmpだから当然か
Plugins/Android
以前もAndroidManifestで同じようにバッティングしてエラーが起きたときに参考したサイト↓
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のエラーで検索して出た下の記事
この質問に貼ってあった下の記事を参考に、プロジェクトをExportしてAndroidStudioで開いてgradleのアップデートをした。
でもダメだった。
エラー文的にすこしちがうかもしれをよく読んでなかったのでここでの対処は無意味だったかもしれない。
AndroidStudioのSDK
下の方は恐らくAndroidStudioのSDKbuild-Toolsを最新にしたのだと思う。
AndroidStudioから最新のSDKと
SDKbuild-Toolsをインストールした。
AndroidStudio側でもUnityのSDKの場所を参照しているので、
(C:\Users\ユーザー名\AppData\Local\Android\Sdk)の場所にした。
Unity2019でのAndroidビルド
もともとUnityHubからインストールできるSDKを使っていた。
こちらのとおりにSDKのパスをUnityのものではなくAndroidStudioのものにした。
そのほか試した事
1
プロジェクトフォルダの中にAndroidManifestは自分では作っていない
Oculus>VR>Editorの中にAndroidManifest.OVRSubmissionがある。
これを消した
2
昔OculusBuild7でおかしくなった時に下記の記事の「コールバックで対策する」部分をやった。
AndroidManifestにスクリプトから何か書き込むもの。
もういらないはずなのでこのスクリプトを消す。
3
Unityを再起動してTempのAndroidManifestを消す