Libgdx,Transitive依赖Android,Java库项目,Jar [英] Libgdx, Transitive dependencies Android,Java library project, Jar

查看:94
本文介绍了Libgdx,Transitive依赖Android,Java库项目,Jar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚创建了模板Libgdx项目(Core,Android,Windows)。 Core是常规的Java项目库。 Core到XStream.jar库中存在依赖关系。 Core包含通过Xml的文件输入输出。 Android项目依赖于java核心项目。

I have just created template Libgdx project (Core,Android,Windows). Core is regular Java project library. There is a dependency in Core to XStream.jar library. Core contains file input-output via Xml. Android project has dependency to java core project.

现在XStraem适用于Windows,但不适用于Android。对于Android我有这个:

Now XStraem is working for Windows but not for Android. For Android i got this:

01-22 13:03:24.141: E/AndroidRuntime(25074): FATAL EXCEPTION: GLThread 5187
01-22 13:03:24.141: E/AndroidRuntime(25074): Process: com.barsoft.drag, PID: 25074
01-22 13:03:24.141: E/AndroidRuntime(25074): java.lang.NoClassDefFoundError: com.thoughtworks.xstream.XStream
01-22 13:03:24.141: E/AndroidRuntime(25074):    at com.barsoft.drag.managers.XmlManager.loadFromFileAutoType(XmlManager.java:29)
01-22 13:03:24.141: E/AndroidRuntime(25074):    at com.barsoft.drag.managers.ObjectManager.createObjectAutoType(ObjectManager.java:66)
01-22 13:03:24.141: E/AndroidRuntime(25074):    at com.barsoft.drag.Game.create(Game.java:36)
01-22 13:03:24.141: E/AndroidRuntime(25074):    at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:334)
01-22 13:03:24.141: E/AndroidRuntime(25074):    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1512)
01-22 13:03:24.141: E/AndroidRuntime(25074):    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

如果我将库添加到Android项目的构建路径中,我得到:

If I am adding library to the build path in Android project i got:

[2014-01-22 13:23:06 - Dex Loader] Unable to execute dex: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser;
[2014-01-22 13:23:06 - drag-android] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser;

同样的东西是当我在Core中检查库时 - >订单和导出

The same stuff is when I check libraries in Core -> Order and Export

关于创建核心项目的LibGDX doc:

From LibGDX doc about creating core project:



  1. Main项目设置在Eclipse中创建一个新的Java项目:File - > New
    - > Project - > Java Project。为其命名,然后单击完成。

  1. Main project setup Create a new Java project in Eclipse: File -> New -> Project -> Java Project. Give it a name and click Finish.

转到文件系统上的项目文件夹,创建一个名为libs的子文件夹。
下载每晚拉链并将gdx.jar和gdx-sources.jar放在
libs文件夹中。

Go to the project folder on the file system and create a sub-folder named libs. Download the nightly zip and place gdx.jar and gdx-sources.jar in the libs folder.

在Eclipse中,右键单击项目 - >刷新。右键
再次点击 - >属性 - > Java构建路径 - >库 - >添加JAR,
选择gdx.jar并单击OK。

In Eclipse, right click the project -> Refresh. Right click again -> Properties -> Java Build Path -> Libraries -> Add JARs, select gdx.jar and click OK.

在gdx.jar文件下,双击
源附件,单击工作区,选择gdx-sources.jar和
单击确定。

Under the gdx.jar file, double click "Source attachment", click Workspace, select the gdx-sources.jar and click OK.

点击订单和导出标签,检查gdx.jar并点击
确定。

Click the Order and Export tab, check the gdx.jar and click OK.

注意:第5步使gdx.jar成为传递依赖。这意味着依赖于主项目的
项目也会在
的类路径上有gdx.jar。但是,这对Android项目不起作用。

Note: Step 5 makes gdx.jar a transitive dependency. That means that projects that depend on the main project will also have gdx.jar on their classpath. However, this doesn't work for Android projects.

这是否意味着Java核心项目中包含的任何依赖项都不起作用Android的?
有没有办法让XStream传输lib工作?

Does that mean that any dependency included within Java core project won't work on Android? Is there a way to get XStream transit lib working?

推荐答案

如果Android上支持该库,它将会工作。

If the library is supported on Android, it will work.

将它放在Core项目的libs文件夹中。将其添加到其订单&导出选项卡。

Put it in the Core project's "libs" folder. Add it to its Order & Export tab.

将其添加到Android项目的库选项卡中。 (添加罐子,而不是添加外部罐子)然后在订单&中查看它。导出选项卡以及。

Add it to the Libraries tab of the Android Project. ("Add jars", not "Add external jars") And then check it in the Order & Export tab aswell.


这意味着依赖于主项目的项目在其类路径上也将具有gdx.jar。但是,这对Android项目不起作用。

That means that projects that depend on the main project will also have gdx.jar on their classpath. However, this doesn't work for Android projects.

这只是意味着Core项目的类路径中的库不是自动添加到Android项目(据我所知,前段时间确实如此)。

This just means that the libraries in the classpath of the Core project aren't automatically added to the Android project (As far as I know, some time ago it did).

如果你得到多个dex文件错误。在订单&中取消选中私有库 Android项目的导出标签。

If you get the Multiple dex files error. Uncheck private libraries in the Order & Export tab of the Android project.

这篇关于Libgdx,Transitive依赖Android,Java库项目,Jar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆