Я работаю над проектом 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
отсутствует в контекстном меню, когда я щелкаю ее правой кнопкой мыши на настольном компьютере:
Я пытался очистить проект. Я даже полностью удалил 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