2020.3.0f1がLTSになったみたいなので、カットアウトとか動くようになってないかな〜とUnityのVersionを上げてみたら色々動かなくて困ったという話(ワークアラウンドがあったのでその紹介)
一応、公式でISSUEがあるのでいずれは治るっぽい。
環境
- 端末: GooglePixel3(実機)
- Unity: 2019.4.14f1 -> 2020.3.01f
buildが通らなくなった
Could not get unknown property 'unityStreamingAssets' for object of type com.android.build.gradle.internal.dsl.AaptOptions
参考
workarundっぽい?
gradle.properties
に unityStreamingAssets=.unity3d
を追加すればいいっぽい(以下、例)
// gradle.properties
unityStreamingAssets=.unity3d
起動後にUnityPlayerがエラーを吐く
2021-03-21 13:42:32.089 15232-15232/dev.kyokomi.uaal.android.debug E/Unity: Failed to load 'libmain.so'
java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/app/~~yL3ldJUhOgAt7431K0FzoQ==/dev.kyokomi.uaal.android.debug-U9CES-hfQ758GdtJnYVSGA==/lib/arm64/libmain.so" not found
2021-03-21 13:42:32.090 15232-15232/dev.kyokomi.uaal.android.debug E/Unity: Your hardware does not support this application.
参考
App not working on some devices; Failed to load ’libmain.so’
[ANDROID] APP INSTALLED USING APK FROM APP BUNDLE OPTION IN ANDROID STUDIO FAILS TO RUN
workaround
これは workaround らしいが、gradle.properties
に android.bundle.enableUncompressedNativeLibs
を追加して、AndroidManifest.xml
の <application>
に android:extractNativeLibs="true"
を追加すれば動いた。
// gradle.properties
android.bundle.enableUncompressedNativeLibs
// AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dev.kyokomi.uaal.android">
<application
android:name=".MyApplication"
...
+ android:extractNativeLibs="true"
...
>
...
公式ドキュメント的に extractNativeLibs
は、defaultはtrueらしいが明示的に指定すると動くというのは、確かにハックっぽい。無事に?動いた様子。
とはいえ、Exportで生成されるbuild.gradle周りとかかなり変更入ってたし、しばらくversionはあげないでおこう…と思いました。