Android Studio "Добавить как библиотеку" отсутствует для универсального Tween Engine в Libgdx
Я работаю над проектом Libgdx, который использует Universal Tween Engine. Я выполнил все шаги на этой странице: https://github.com/libgdx/libgdx/wiki/Universal-Tween-Engine, чтобы установить библиотеку Universal Tween Engine в мой проект.
После выполнения всех этих шагов проект будет нормально работать (как на Android, так и на рабочем столе) на моем ноутбуке, и анимация, исходящая от движка анимации, будет отлично работать.
Однако на моем настольном компьютере каждый раз, когда я пытаюсь запустить настольное приложение, оно вылетает с NoClassDefFoundException, создаваемым для класса TweenAccessor, который является частью Universal Tween Engine. Приложение компилируется правильно, и я могу нажать Ctrl-клик на классе, который, по его словам, не может найти, и открывает исходный код этого класса, поэтому я знаю, что по крайней мере какая-то часть IDE находит этот класс. Ни в одном из классов Библиотеки в редакторе исходного кода нет ошибок с красным подчеркиванием. Интересно, что на моем настольном компьютере я могу запустить приложение для Android, и оно не падает, а анимация работает отлично. Только настольная версия не будет работать.
Пытаясь решить эту проблему, я столкнулся со многими вещами, которые говорят, чтобы переключиться в представление "Проект", найти файлы JAR, щелкнуть по ним правой кнопкой мыши и выбрать Add as a Library
. Мне приходилось делать это раньше в других проектах, и это действительно работает для меня.
Но моя проблема в том, что опция Add as a Library
отсутствует в контекстном меню, когда я щелкаю ее правой кнопкой мыши на настольном компьютере:
![enter image description here]()
Я пытался очистить проект. Я даже полностью удалил Android Studio, скачал новую копию и установил ее. После этого получите те же результаты.
Что определяет, будет ли опция "Добавить как библиотеку" отображаться в контекстном меню при щелчке правой кнопкой мыши по файлу JAR?
Что мне нужно сделать на моем настольном компьютере, чтобы он правильно использовал библиотечный архив Universal Tween Engine?
ОБНОВЛЕНИЕ: соответствующие разделы gradle.build.
project(":desktop") {
apply plugin: "java"
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
compile fileTree(dir: '../libs', include: '*.jar') // This one is not listed but I added anyway
}
}
//...
project(":android") {
apply plugin: "android"
configurations { natives }
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
compile fileTree(dir: '../libs', include: '*.jar')
}
}
//...
project(":core") {
apply plugin: "java"
dependencies {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
compile fileTree(dir: '../libs', include: '*.jar')
}
}
Моя структура проекта
project_root_dir/
android/
core/
desktop/
html/
ios/
libs/
tween-engine-api.jar
tween-engine-api-sources.jar
Ответы
Ответ 1
Я бы просто добавил в качестве зависимости только эту строку:
compile files('../libs/tween-engine-api.jar')
Эта строка выше должна заменить эту строку:
compile fileTree(dir: '../libs', include: '*.jar')
Я мог представить, что файл исходного кода что-то ломает. В целом, я бы не стал импортировать несколько банок одновременно, я бы всегда выбирал их вручную.
В качестве альтернативы вы пробовали пункты 6 и 7 из файла readme?
Добавив это в свой раздел зависимостей:
compile "aurelienribon:tweenengine:6.3.3"
compile "aurelienribon:tweenengine:6.3.3:sources"
И добавьте эти два maven-хранилища в свой файл build.gradle в корне проекта:
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
Ответ 2
Я столкнулся с той же проблемой... Я решил ее так: просто добавьте файлы tween.jar в папку libs в Project и добавьте это в build.gradle
project(":core") {
apply plugin: "java"
dependencies {
compile fileTree(dir: '../libs', include: 'tween-engine-api*.jar')
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion"
compile "de.tomgrill.gdxfacebook:gdx-facebook-core:1.1.1"
compile "de.tomgrill.gdxdialogs:gdx-dialogs-core:1.0.0"
compile "net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.2"
compile "net.dermetfan.libgdx-utils:libgdx-utils:0.13.2"
compile "org.robovm:robopods-google-mobile-ads-ios:1.6.0"
compile "org.robovm:robopods-google-analytics-ios:1.6.0"
}
}
Ответ 3
Если вы действительно хотите увидеть опцию "Добавить как библиотеку".
Обновите зависимости Android в build.gradle следующим образом (удалив ".jar").
project(":android") {
apply plugin: "android"
configurations { natives }
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
compile fileTree(dir: '../libs', include: '') //removed '*.jar'
}
}
ИЛИ, в противном случае вы можете добавить свою библиотеку, не редактируя свои зависимости,
File->Project Structure->Dependencies-> Add->File dependency
Ответ 4
Вы можете попробовать это. Универсальный анимационный двигатель в Maven Repo.
fooobar.com/info/417250/...