Подтвердить что ты не робот

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
4b9b3361

Ответ 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/...