gpt4 book ai didi

java - 如何为java项目生成jar文件并在android项目中使用jar

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:10 25 4
gpt4 key购买 nike

我正在尝试为 java 项目生成一个 jar 文件,然后在 android 项目中引用该 jar 文件。作为测试,我创建了一个仅包含以下类的简单 java 项目

package test;
public class Test {
public static void hello(){
System.out.println();
}
public static void main(String[] args){
hello();
}

我将这个项目导出为 Eclipse 下的可执行 Jar 文件。然后我将这个 jar 文件复制到一个 android 项目的“libs”文件夹中,所以这个 jar 文件出现在私有(private)库中,我选中“订购和导出”选项卡下的私有(private)库框。我通过将以下语句添加到 android 项目的主要 Activity 的 onCreate() 来引用 jar 文件

  Test.hello(); //reference the jar file

但是,当我运行 Android 项目时,我得到了

java.lang.NoClassDefFoundError: test.Test

错误。完整的错误跟踪轨迹如下

 10-17 23:14:52.976: E/AndroidRuntime(16725): FATAL EXCEPTION: main
10-17 23:14:52.976: E/AndroidRuntime(16725): java.lang.NoClassDefFoundError: test.Test
10-17 23:14:52.976: E/AndroidRuntime(16725): at
com.skyhookwireless.samples.wpsapitest.WpsApiTest.onCreate(WpsApiTest.java:71)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.Activity.performCreate(Activity.java:4470)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.ActivityThread.access$600(ActivityThread.java:128)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.os.Handler.dispatchMessage(Handler.java:99)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.os.Looper.loop(Looper.java:137)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
android.app.ActivityThread.main(ActivityThread.java:4517)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
java.lang.reflect.Method.invokeNative(Native Method)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
java.lang.reflect.Method.invoke(Method.java:511)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
10-17 23:14:52.976: E/AndroidRuntime(16725): at
dalvik.system.NativeStart.main(Native Method)

附件是订单和导出选项卡的屏幕截图以及每个库中包含的 jar。 the jars contained in each library order and export tab

有谁知道我该如何纠正这个问题?

我已经阅读了本网站上关于 NoClassDefFoundError 的几篇文章(例如 this ),并尝试了评论或答案中列出的解决方案。但是在这个简单的场景中没有人解决我的问题。

最佳答案

我觉得你的项目和测试类的主要 Activity 是由不同的类加载器加载的。看看这个,找出您可能遗漏的地方。

http://javareferencegv.blogspot.com/2013/10/debugging-javalangnoclassdeffounderror.html

关于java - 如何为java项目生成jar文件并在android项目中使用jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19440837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com