Проблема с разработкой GearVR после экспорта в виде проекта Google Android

Я новичок в разработке Unity. Итак, я хотел бы извиниться, если мой вопрос бесполезен для темы.

Я начал учиться разрабатывать приложение на Unity для GearVR. В моем сценарии я хочу экспортировать приложение Unity как проект Google Android в Eclipse для дальнейшей разработки. В Eclipse я передаю сообщение функции Unity через Sendmessage().

Моим первым шагом было разработать приложение и запустить его в Note4 без включения «Поддержки виртуальной реальности». Это работало нормально.

Однако позже я включил «Поддержку виртуальной реальности» и экспортировал как проект Google Android. Затем попытался установить и запустить приложение через Eclipse. Но приложение вылетело. Ошибки, которые мне удалось найти в LogCat, были «Фатальный сигнал 11 (SIGSEGV) по адресу 0xfa57132b (код = 1), поток 9384 (UnityMain)» и «Не удалось найти OVRPlugin».

Затем я использовал «Build and Run» в Unity, чтобы установить приложение на Note4. На этот раз сработало нормально.

Таким образом, приложение не работает, когда «Поддержка виртуальной реальности» включена и устанавливается через Eclipse после экспорта в виде проекта Google Android.

Я реконструировал apk, созданный Unity, когда использовал «Build and Run». Я заметил некоторые различия в экспортированных проектах Google Android и apk-проектах с обратной инженерией. В частности, содержимое в папке libs было другим.

Было бы здорово, если бы кто-нибудь помог мне решить эту проблему.


person Shanaka R    schedule 30.03.2016    source источник
comment
Какая версия единства и почему вы все еще используете eclipse? Google давно перестал обновлять свой API для совместимости с Eclipse. Android Studio — это новый способ разработки для Android.   -  person Programmer    schedule 30.03.2016
comment
Я использую Unity 5.3.4p1. Unity экспортирует его как проект Android для Eclipse. Вот почему я использую Eclipse. Но, насколько я знаю, не имеет значения, какую IDE вы используете для Unity, поскольку она отлично работает, когда отключена поддержка виртуальной реальности.   -  person Shanaka R    schedule 30.03.2016
comment
Unity экспортирует его как проект Android для Eclipse НЕ совсем. Unity 5 также был обновлен для работы с Android Studio. Просто создайте с установленным флажком Проект Google Android, а затем импортируйте его в Android Studio. Android Studio всегда в актуальном состоянии. Попробуйте это в первую очередь.   -  person Programmer    schedule 30.03.2016
comment
Я пробовал. Но это тот же результат. Приложение вышло из строя.   -  person Shanaka R    schedule 30.03.2016
comment
Ok. Когда Unity создает проект Android, вероятно, он не добавляет OVRPlugin.so и libvrapi.so в каталог Project/libs/armeabi-v7a/. Эти два файла можно найти в Project/libs/ovrplugin.aar. Итак, откройте ovrplugin.aar и найдите OVRPlugin.so и libvrapi.so. Если вы их найдете, скопируйте их в каталог Project/libs/armeabi-v7a/. Сообщение об ошибке должно как минимум измениться.   -  person Programmer    schedule 30.03.2016


Ответы (1)


Я столкнулся с той же проблемой, и вот что в итоге сработало для меня:

1) Экспортируйте проект Android с включенной «Поддержкой виртуальной реальности».

2) Откройте Android Studio и используйте Import project (Eclipse ADT, Gradle и т. д.) для импорта вашего проекта. Выберите другой каталог для «Импорт назначения». Выберите все три варианта на следующем экране.

3) Дождитесь завершения импорта и работы Gradle.

4) Выйдите из проекта или Android Studio.

5) Скопируйте файл ovrplugin.aar из созданного каталога проекта Unity (project_name/libs/ovrplugin.aar) в сгенерированный проект Android Studio (project_name/app/libs/)

6) Отредактируйте файл build.gradle, расположенный по адресу имя_проекта/приложение/, и добавьте следующее:

allprojects {
  repositories {
    jcenter()
    flatDir {
      dirs 'libs'
    }
  }
}

а также это: compile(name:'ovrplugin', ext:'aar') в разделе dependencies {}

поэтому этот файл выглядит примерно так:

apply plugin: 'com.android.application'

android {
    (...)
}

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    compile(name:'ovrplugin', ext:'aar')
    (...)
}

7) Откройте свой проект и подождите, пока Gradle закончит обработку обновленных файлов.

Теперь это должно работать нормально. Соберите APK и протестируйте.

person jakub.sz    schedule 14.04.2016