Обычно нужно превратить его в библиотеку, чтобы встроить в другое приложение. Однако теперь я хочу вместо этого преобразовать его в динамическую функцию.
Я поместил это в манифест проекта Unity:
<dist:module
dist:onDemand="true"
dist:title="@string/title_gamejam_as_dynamic_feature">
<dist:fusing dist:include="true" />
</dist:module>
Кроме того, я закомментировал часть bundle{}
его файла Gradle. Если я не прокомментировал это, я получаю следующую ошибку:
Could not find method bundle() for arguments [build_9piysgasfu4pgl4v1ppx46cyn$_run_closure3$_closure12@44175a08] on object of type com.android.build.gradle.AppExtension.
Я также убедился, что UnityPlayerActivity
расширяет мой пользовательский AppCompatActivity
, который использует SplitCompat.install(this)
[хотя он расширяет Activity
].
Прямо сейчас моя проблема в том, что по какой-то причине Assets
в этом проекте Unity не зарегистрированы в базовом APK, поэтому UnityPlayerActivity
завершается сбоем при запуске.
Что я делаю не так?
РЕДАКТИРОВАТЬ: ошибка трассировки стека ниже:
01-15 03:48:18.343 15446-15522/? E/mono: The assembly mscorlib.dll was not found or could not be loaded.
01-15 03:48:18.343 15446-15522/? E/mono: It should have been installed in the `/data/app/test.com.ondemandtest-1/base.apk/assets/bin/Data/Managed/mono/4.5/mscorlib.dll' directory.
01-15 03:48:18.343 15446-15446/? E/CRASH: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
01-15 03:48:18.343 15446-15446/? E/CRASH: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-15 03:48:18.343 15446-15446/? E/CRASH: Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a'
01-15 03:48:18.343 15446-15446/? E/CRASH: Build fingerprint: 'Huawei/ALE-L21/hwALE-H:5.0.1/HuaweiALE-L21/C636B150:user/release-keys'
01-15 03:48:18.343 15446-15446/? E/CRASH: Revision: '0'
01-15 03:48:18.343 15446-15446/? E/CRASH: pid: 15446, tid: 15446, name: om.ondemandtest >>> test.com.ondemandtest <<<
01-15 03:48:18.343 15446-15446/? E/CRASH: r0 00000000 r1 ffc2fb10 r2 6f5aec60 r3 00000000
01-15 03:48:18.343 15446-15446/? E/CRASH: r4 ffc2fb10 r5 e22c0250 r6 00000000 r7 6f5aec60
01-15 03:48:18.343 15446-15446/? E/CRASH: r8 ffc2fad4 r9 ab3f7930 sl ffc2fa9f fp ffc2fa50
01-15 03:48:18.343 15446-15446/? E/CRASH: ip e1fafee8 sp ffc2fa40 lr e1fb0040 pc e1fafca8 cpsr 00003c56
01-15 03:48:18.343 15446-15446/? E/CRASH: backtrace:
РЕДАКТИРОВАТЬ 2:
При дальнейшей проверке я обнаружил, что mscorlib.dll
находится не в файле mono
.so, а в папке Assets. Копирование assets/bin/Data/...
проекта Unity в базовый проект (в тот же путь) работает ... но это просто побеждает точку модульности.
Есть ли способ, чтобы проект Unity мог использовать приносимые им активы, не копируя их в базовый APK перед развертыванием?