我正在开发一个使用Universal Tween Engine的Libgdx项目。我已按照此页面上的所有步骤操作:https://github.com/libgdx/libgdx/wiki/Universal-Tween-Engine将Universal Tween Engine库安装到我的项目中。
完成所有这些步骤后,项目将在我的笔记本电脑上构建并运行良好(Android和桌面),来自补间引擎的动画完美运行。
但是,在我的台式计算机上,每当我尝试运行桌面应用程序时,它都会在TweenAccessor类上抛出NoClassDefFoundException而崩溃,而TweenAccessor类是Universal Tween Engine的一部分。应用程序正确编译,我可以按住它,它说它无法找到的类,它打开了该类的源代码,所以我知道IDE的至少某些部分正在找到这个类。源代码编辑器中的任何库类都没有红色下划线错误。有趣的是,在我的桌面计算机上,我可以运行Android应用程序,它不会崩溃,动画也可以完美运行。只有桌面版本不起作用。
在尝试对此进行问题排查时,我遇到了很多事情要说切换到“项目”视图找到jar文件,右键单击它们并选择Add as a Library
我过去必须这样做其他项目确实对我有用。
但我的问题是当我在桌面PC上右击它时,上下文菜单中缺少Add as a Library
选项:
我试过清理这个项目。我甚至完全卸载Android Studio并下载了一个新副本并安装了它。这样做后仍然得到相同的结果。
在右键单击jar文件时,是什么决定“添加为库”选项是否会显示在上下文菜单中?
我需要在桌面PC上做些什么才能正确使用Universal Tween Engine库jar?
编辑: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
答案 0 :(得分:4)
我只想在这一行添加依赖:
compile files('../libs/tween-engine-api.jar')
上面的那一行应该替换这一行:
compile fileTree(dir: '../libs', include: '*.jar')
我可以想象源代码文件正在破坏某些东西。一般来说,我会避免一次导入多个罐子,我总是手工选择它们。
作为另一种想法,您是否尝试过readme file?
中的第6点和第7点在您的依赖关系部分添加:
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/" }
答案 1 :(得分:1)
如果你真的想看到" Add as Library"选项。 在build.gradle中更新您的Android依赖项,如下所示(通过删除' .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'
}
}
OR,否则您可以通过
添加库而不编辑依赖项文件 - >项目结构 - >依赖关系 - >添加 - >文件依赖
答案 2 :(得分:0)
你可以尝试这个。 maven repo中的通用补间引擎。