Как получить доступ к файлу aar, в библиотеках, из Main
Я провел последние три дня, пытаясь прочитать.aar в Android Studio, и я просто не могу понять это. Мой вид проекта выглядит так:
--- AnApplication
----------------------.gradle
-----------------------.idea
----------------------- app
-------------------------------- build
-------------------------------- libs
---------------------------------------- cube5-debug.aar
(...)
Я хочу получить доступ к классу внутри cube5-debug.aar из моей основной деятельности.
Я знаю, что класс есть в файле.aar.
Я не знаю точную строку импорта, которую я должен написать в начале своей основной статьи. Я пробовал импортировать com.company_cube.cube5 (пакет проекта, в котором я создал свой.aar) и многие другие варианты.
Я не знаю, распознает ли Android Studio файл как библиотеку. Однако файлы успешно синхронизируются с Gradle.
(Для контекста, проект, в котором я сгенерировал.aar, был создан Unity, экспортировав проект Unity в Android, а затем сгенерировав.aar из этого; целью было использовать этот файл.aar в качестве библиотеки в второй проект Android Studio - тот, о котором я говорю в этом посте)
Я терпеливо жду любую помощь, которую вы можете оказать мне. Спасибо
РЕДАКТИРОВАТЬ: Чтобы импортировать.aar, я следовал за изображениями этого небольшого поста: Импорт.aar в Android Studio
И исправил ошибку, о которой сообщает сообщение, поместив файл.aar в папку libs, как сказал Дэниел Ньюджент. Тем не менее, когда я пытаюсь написать, в основном:
- Intent intent = new Intent (getApplicationContext (), UnityPlayerActivity.class);
AS не распознает UnitPlayerActivity. Этот класс находится внутри файла.aar предположительно. Перед тем, как сделать aar в моем первом проекте AS, он был здесь:
cube5->libs->unity-classes.jar->com.unity3d.player->UnityPlayerActivity
Когда я открываю.aar с помощью Winrar и открываю unity-classes.jar с помощью текстового редактора, я вижу почти все как закодированные символы.
Я не уверен, что это нормально. Любая идея?
РЕДАКТИРОВАТЬ 2: Я думаю, что я знаю, где ошибка: когда я импортирую свой.aar, я получаю фатальную ошибку IDE. Я не знаю, как решить эту проблему, поэтому, если вы можете, пожалуйста, проверьте сообщение, которое я сделал об этом: Неустранимая ошибка IDE при импорте.aar
3 ответа
Так что мне удалось это решить. Файл.aar, о котором я говорил, был экспортирован в AS после того, как я импортировал проект Unity в AS. Я сделал это для того, чтобы использовать программу Unity внутри AS. Однако это приводит к ошибке для некоторых версий Unity и AS. Я установил Unity 5.5.0f3 и более старую версию AS, и все работало нормально.
Примечание 1: если вы намерены установить эту версию Unity, вам будет предложено указать какой-то инструмент для Windows 10, который вы должны получить (я не могу вспомнить название). Я сделал это, загрузив Windows 10 установить и установить только тот инструмент, который поставляется с пакетом.
Примечание 2: я заставил программу из Unity работать внутри AS, но только потому, что это была простая программа. Позже я хотел создать приложение с дополненной реальностью в Unity и использовать его в AS, но, по-видимому, сделать это невозможно. Эвертинг работает нормально, пока я не импортирую.aar в AS, и класс в этой библиотеке.aar не будет разрешен ("Видеоплеер"). Это должно быть связано с классом камеры AR, который AS не распознает. приложение AR с Unity, другое приложение в AS и из приложения AS, при необходимости вызывающее приложение Unity с двумя строками кода. Чтобы вернуться к приложению AS, теперь в фоновом режиме, я просто нажимаю кнопку возврата, которая распознается приложением Unity (если вы создаете для него код в Unity) и заставляет его самоуничтожиться, возвращаясь к приложению AS.
Для Android Studio 2.3.3 вы можете использовать
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(name: 'cube5-debug', ext: 'aar')
}
в app
уровень build.gradle
, Я не проверял это для AS 3.0.
Добавьте файл.aar в свое приложение, выполнив:
в проекте build.gradle
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}
в приложении build.gradle
dependencies {
compile(name:'cube5-debug', ext:'aar')
}