👋
「UnityPlayerActivity.javaは非推奨のAPIを使用またはオーバーライドしています」が出てビルドできないとき
概要
- UnityでAndroidアプリをビルドするときに下記のようなエラーが出てしまいビルドできないことがあります
- 私はLightship ARDKを使おうとしたときに遭遇しました
- このエラーの解決方法を紹介します
Library\Bee\Android\Prj\IL2CPP\Gradle\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.javaは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher:processReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
C:\Users\xxx\.gradle\caches\transforms-2\files-2.1\3d1b13a857e40c43266a99844bd8d18d\nar-dependencies\AndroidManifest.xml:28:9-30:40: AAPT: error: unexpected element <uses-native-library> found in <manifest><application>.
C:\Users\xxx\.gradle\caches\transforms-2\files-2.1\3d1b13a857e40c43266a99844bd8d18d\nar-dependencies\AndroidManifest.xml:28:9-30:40: AAPT: error: unexpected element <uses-native-library> found in <manifest><application>.
解決方法
Project Settings->Player Settings->Publish SettingsのCustom Main Manifest
にチェックを入れます
するとAssets/Plugins/Android
にAndroidManifest.xml
が生成されるのでこれを編集します
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools">
<application>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
+ <queries>
+ <package android:name="com.google.ar.core" />
+ </queries>
</manifest>
上記のように<application>
タグの外側に <queries><package android:name="com.google.ar.core" /></queries>
を追加します
これでビルドしてみてそれでもエラーが出る場合、下記の手順に進みます
gradleのページから最新版をダウンロードします
completeのリンクからzipがダウンロードできます
zipを任意の場所に展開し、Unityで使用するgradleをダウンロードしたものに切り替えます
UnityでPreferences->External Tools->Gradle Installed with Unity
のチェックを外し、先ほど展開したgradleのディレクトリを指定します
さらにProject Settings->Player Settings->Publish Settingsを開き Custom Base Gradle Template
にチェックを入れます
生成されたbaseProjectTemplate.gradle
を編集しgradle:4.2.0
に書き換えます
allprojects {
buildscript {
repositories {**ARTIFACTORYREPOSITORY**
google()
jcenter()
}
dependencies {
// If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity
// See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html
// See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
// To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version
- classpath 'com.android.tools.build:gradle:4.0.2'
+ classpath 'com.android.tools.build:gradle:4.2.0'
**BUILD_SCRIPT_DEPS**
}
}
repositories {**ARTIFACTORYREPOSITORY**
google()
jcenter()
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
これで無事ビルドが通るようになりました。
Discussion