Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 嵌套jar中的NoClassDefFoundError(Android)_Java_Android_Eclipse_Jar_Noclassdeffounderror - Fatal编程技术网

Java 嵌套jar中的NoClassDefFoundError(Android)

Java 嵌套jar中的NoClassDefFoundError(Android),java,android,eclipse,jar,noclassdeffounderror,Java,Android,Eclipse,Jar,Noclassdeffounderror,我已经创建了一个简单的应用程序来测试场景,该场景由于NoClassDefFoundError而失败 让我们举个例子,我有一个test1android项目,它的类TestClass带有一些方法。 我将这个Test1项目导出为Test1.jar,并仅导出了带有类TestClass和classpath和project文件的源文件夹 在另一个android项目Test2中,我在我的libs文件夹中添加了这个test1.jar。在这个Test2项目中,我有一个类Test2Class,它调用test1.ja

我已经创建了一个简单的应用程序来测试场景,该场景由于
NoClassDefFoundError
而失败

让我们举个例子,我有一个test1android项目,它的类TestClass带有一些方法。 我将这个Test1项目导出为Test1.jar,并仅导出了带有类TestClass和
classpath
project
文件的源文件夹

在另一个android项目Test2中,我在我的libs文件夹中添加了这个
test1.jar
。在这个Test2项目中,我有一个类Test2Class,它调用test1.jar类的方法

在此之后,我按照上述步骤将这个Test2项目导出为
Test2.jar
文件

因此,当我在另一个项目中使用这个
test2.jar
时,我得到了上面的错误
NoClassDefFoundError
。这是jar在jar中的场景

我应该在任何地方做点什么,这样我就可以访问罐子里的罐子了


提前感谢。

从java构建路径中删除JAR。将新文件夹名添加为“libs”,并发布该文件夹中的所有jar。应用程序将正常运行

请尝试以下操作:

转到Project/Properties/Java Build Path/Order和Export——确保在Android依赖项和支持库前面有一个检查,如果您使用它的话


标记所有复选框,然后单击应用并清理项目。

一步一步地尝试此操作:
1. <代码>删除所有库项目,然后清除。
2.转到第一个项目
Test1
右键单击属性->Android。检查
是否为库
(使其成为库)。
3.转到第二个项目
Test2
右键单击库部分的属性->Android,选择
Add
->将第一个项目添加为库
4.转到第二个项目
Test2
右键单击属性->Android。另外,请检查
是否为库

5.转到第三个
项目C
右键单击属性->Android。在库部分,选择添加第一个和第二个作为库。(不要将项目C设置为库)
6.现在清理所有内容并运行
Proj C

编辑:
您还可以看到这个bug和。试试上面的方法,它应该会起作用。

这是做不到的。您需要解压JAR并将其添加到类路径以公开嵌套的JAR。见此参考

有几种方法可供选择,以正确的方式处理它,例如,请参阅which建议,或


注意:这与Java有关,Andoid的行为可能不同,但它似乎有相同的问题。

您是否在project的构建设置中按顺序添加并导出了此项?是的,我已尝试按顺序添加并导出。以及在libs文件夹中。我想我尝试了几乎所有订单和出口的组合:P。我认为错误在于。项目文件。删除它,检查并让我知道它是否有效。因为.project文件有旧路径,即y,我也面临着同样的问题,在谷歌搜索了几次之后,我才知道这一点。第三个项目必须同时使用
test1.jar
test2.jar
作为依赖项。我仍然有NoClassDefFoundError。请交叉检查库和订单导出部分。那里面应该没有罐子。如果是,则将其移除。如果再次出现异常,请发送库的屏幕截图以及java build path.Ya的顺序和导出,正如您所说的,我将test1.jar文件放在Test2项目的libs文件夹中,并确保它没有顺序,然后导出并创建了Test2.jar。。除了这个test2.jar之外,我还把它放在了另一个新项目的libs文件夹中,并确保它不正常,然后导出?请发送日志对不起,回复太晚了。我得到test1.jar中存在的类的NoClassDefFoundError异常。因为我试图在test2.jar方法中调用test1.jar的方法。如果您想为这个bug应用补丁,您可以看到。还可以看到eclipse,就是这样。你说的不可能。一个jar或Uber-jar方法有点复杂,也没有合适的教程。不,它不能用普通的方法完成。为了验证,在谷歌上搜索“java嵌套JAR”,你会发现很多人都有同样的问题。解决方法是解压zar并添加它们,或者使用其他解决方案。