Android Studio «Добавить как библиотеку» отсутствует для Universal Tween Engine на Libgdx

Я работаю над проектом Libgdx, который использует Universal Tween Engine. Я выполнил все шаги на этой странице: https://github.com/libgdx/libgdx/wiki/Universal-Tween-Engine, чтобы установить библиотеку Universal Tween Engine в мой проект.

После завершения всех этих шагов проект будет работать и работать отлично (как Android, так и Desktop) на моем ноутбуке, а анимация, идущая от движка tween, отлично работает.

Однако на моем настольном компьютере всякий раз, когда я пытаюсь запустить настольное приложение, он выходит из строя с NoClassDefFoundException, который бросается на класс TweenAccessor, который является частью Universal Tween Engine. Приложение правильно компилируется, и я могу ctrl-click по классу, который он говорит, что он не может найти, и он открывает исходный код этого класса, поэтому я знаю, что хотя бы часть IDE находит этот класс. В любом из классов библиотеки в редакторе исходного кода нет красных подчеркиваний. Интересно, что на моем настольном компьютере я могу запустить приложение для Android, и он не разбивается, и анимация работает отлично. Только версия Desktop не будет работать.

При попытке устранить эту проблему я воспользовался многими вещами, которые говорят, чтобы переключиться на представление «Проект», найдите файлы jar, щелкните их правой кнопкой мыши и выберите « Add as a Library я должен был делать в прошлом в других проектах, и это Действительно работал для меня.

Но моя проблема заключается в том, Add as a Library опция « Add as a Library отсутствует в контекстном меню, когда я нажимаю ее правой кнопкой мыши на своем настольном ПК:

Введите описание изображения здесь

Я пробовал очистить проект. Я даже полностью удалю Android Studio и скачал новую копию и установил ее. По-прежнему получайте те же результаты после этого.

Что определяет, будет ли опция «Добавить как библиотека» отображаться в контекстном меню при щелчке правой кнопкой мыши на файле jar?

Что мне нужно делать на моем настольном ПК, чтобы заставить его правильно использовать банку библиотеки Universal Tween Engine?

EDIT: соответствующие разделы 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 

Solutions Collecting From Web of "Android Studio «Добавить как библиотеку» отсутствует для Universal Tween Engine на Libgdx"

Я бы просто добавил в качестве зависимости только эту строку:

 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/" } 

Я столкнулся с той же проблемой … я решил это так: просто добавьте файлы 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" } } 

Если вы действительно хотите увидеть опцию «Добавить как библиотеку». Обновите свои зависимости от 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' } 

}

ИЛИ, В противном случае вы можете добавить свою библиотеку, не изменяя свои зависимости,

Файл-> Структура проекта-> Зависимости-> Добавить-> Зависимость файлов

Вы можете попробовать это. Универсальный движок tween в maven repo.

https://stackoverflow.com/a/41426725/3445320