Unity не может найти классы внутри AARAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Unity не может найти классы внутри AAR

Сообщение Anonymous »

У меня есть игра Unity, в которой используется библиотека Android, упакованная в AAR (

Код: Выделить всё

library.aar). Однако мне нужен доступ к обратным вызовам жизненного цикла основного действия (onPause()
, onResume(), и это лишь некоторые из них).

Итак, я создал новый проект библиотеки в Android Studio (назовем этот плагин< /код>). Я импортировал библиотеку.aar в плагин и добавил ее в зависимости. Я протестировал это, вызвав функции внутри библиотеки.aar внутри MainActivity. На данный момент никаких ошибок не выдается.

В MainActivity я вызвал Library.onActivityResult(), Library.onResume(). и Library.onPause() в соответствующих функциях.

Далее я добавил class.jar из Unity/ Editor/Data/PlaybackEngines/androidplayer/release/bin в мой проект плагина. Я добавил JAR в зависимости. Я проверил это, попытавшись создать подкласс UnityPlayerActivity. Опять же, ошибок пока нет.

Я компилирую плагин в плагин-debug.aar и помещаю его в Assets/Plugins/Android >. Я также создал AndroidManifest.xml, полученный из руководства Unity, и поместил его в Assets/Plugins.

Я вызываю функции из кнопка в сцене Unity, например:

Код: Выделить всё

AndroidJavaClass jc = new AndroidJavaClass("com.alxcyl.plugin.MainActivity");
jc.CallStatic("connect");

// "connect" is a static function in the Java class MainActivity containing
// a short message like so:
// Log.d("My Plugin", "connect() was called");
Я создаю игру и запускаю ее на своем устройстве Android. Если я нажимаю кнопку, MyPlugin.connect() вызывается правильно, поскольку он регистрирует сообщение, которое должно быть отправлено при нажатии.

Я думаю, что обратные вызовы жизненного цикла правильно вызван, но проблема в том, что он регистрирует ошибку:

Код: Выделить всё

I/dalvikvm( 5466): Could not find method com.somecompany.library.Library.onActivityResult, referenced from method com.alxcyl.plugin.MainActivity.onActivityResult
W/dalvikvm( 5466): VFY: unable to resolve virtual method 276: Lcom/somecompany/library/Library;.onActivityResult (IILandroid/content/Intent;)V
I/dalvikvm( 5466): Could not find method com.somecompany.library.Library.onPause, referenced from method com.alxcyl.plugin.MainActivity.onPause
W/dalvikvm( 5466): VFY: unable to resolve virtual method 276: Lcom/somecompany/library/Library;.onPause()V
I/dalvikvm( 5466): Could not find method com.somecompany.library.Library.onResume, referenced from method com.alxcyl.plugin.MainActivity.onResume
W/dalvikvm( 5466): VFY: unable to resolve virtual method 276: Lcom/somecompany/library/Library;.onResume()V
D/MyPlugin( 5466): connect() was called
Я не уверен, что является причиной этого. Когда вы создаете проект плагина, он собирается нормально, без каких-либо ошибок, но когда вы получаете к нему доступ через Unity, он не работает. Я попытался использовать ту же библиотеку.aar в новом проекте Android и Library.onActivityResult(), Library.onPause() и Library.onResume() определенно. существуют и называются правильно.

Может ли быть так, что Unity не может обрабатывать AAR, включающие AAR? Есть ли решение этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/296 ... inside-aar
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»