Преобразование проекта Unity Android Studio в динамическую функцию без необходимости копировать его активы в базовый проект с самого начала - PullRequest
0 голосов
/ 15 января 2019

Обычно нужно превратить его в библиотеку, чтобы встроить в другое приложение. Однако теперь я хочу вместо этого преобразовать его в динамическую функцию.

Я поместил это в манифест проекта 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 перед развертыванием?

...