将 JavaML 库添加到 Android 项目
Add JavaML library to Android Project
我是 Android 的新手,甚至是 Java 的新手。我也是 SO 的新手,所以我不能 post 超过 2 个链接,抱歉:/。我需要使用包含在 JavaML 库 (java-ml.sourceforge.net) 中的 LibSVM 对象,每次我想使用它时,我都导入 libsvm.LibSVM
(那里没有失败),并使用 LibSVM test = new LibSVM();
。此时我的应用程序崩溃并显示 NoClassDefFoudError
:
05-31 16:25:42.692 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.LibSVM', referenced from method libsvm.LibSVM.<clinit>
05-31 16:25:42.692 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.svm_parameter', referenced from method libsvm.LibSVM.<init>
05-31 16:25:42.692 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.svm_node[]', referenced from method libsvm.LibSVM.convert
05-31 16:25:42.702 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.svm_problem', referenced from method libsvm.LibSVM.transformDataset
05-31 16:25:42.732 1353-1353/myapp E/InputEventReceiver: Exception dispatching input event.
05-31 16:25:42.732 1353-1353/myapp E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
05-31 16:25:42.747 1353-1353/myapp E/MessageQueue-JNI: java.lang.NoClassDefFoundError: libsvm.LibSVM
at libsvm.LibSVM.<clinit>(LibSVM.java:28)
at myapp.TouchDisplayView.onTouchEvent(TouchDisplayView.java:159)
... stacktrace
我阅读了 How do I add a library project to Android Studio?, How to add classpath in an Android Studio project,但没有成功(对于后者,我卡在了第 5 步,因为 Android Studio 在创建新模块时无法识别我的 .jar)。
我在我的 build.gradle
中添加了 compile files("libs/javaml/javaml-0.1.7.jar")
,还有来自 javaml/lib/
"for more convenience" 的所有文件,如文档所述(java-ml.sourceforge.net/content/installing-library).然后建立干净,并重建。还是不行。
令我感到奇怪的是,Android Studio 可以毫不费力地找到 类,但出于某种原因,我的 phone 不敢苟同。
到目前为止我的树:i.stack.imgur.com/P2DY4.png
如果有人可以指示我如何进行,我将非常高兴。提前致谢!
好的,所以我真的不知道发生了什么,但我重新编译了所有内容,卸载了我 phone 上的应用程序,重新构建了所有内容,现在它可以运行了。不知道为什么,因为这个问题我纠结了一个下午
抱歉问题不是问题。
我是 Android 的新手,甚至是 Java 的新手。我也是 SO 的新手,所以我不能 post 超过 2 个链接,抱歉:/。我需要使用包含在 JavaML 库 (java-ml.sourceforge.net) 中的 LibSVM 对象,每次我想使用它时,我都导入 libsvm.LibSVM
(那里没有失败),并使用 LibSVM test = new LibSVM();
。此时我的应用程序崩溃并显示 NoClassDefFoudError
:
05-31 16:25:42.692 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.LibSVM', referenced from method libsvm.LibSVM.<clinit>
05-31 16:25:42.692 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.svm_parameter', referenced from method libsvm.LibSVM.<init>
05-31 16:25:42.692 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.svm_node[]', referenced from method libsvm.LibSVM.convert
05-31 16:25:42.702 1353-1353/myapp E/dalvikvm: Could not find class 'libsvm.svm_problem', referenced from method libsvm.LibSVM.transformDataset
05-31 16:25:42.732 1353-1353/myapp E/InputEventReceiver: Exception dispatching input event.
05-31 16:25:42.732 1353-1353/myapp E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
05-31 16:25:42.747 1353-1353/myapp E/MessageQueue-JNI: java.lang.NoClassDefFoundError: libsvm.LibSVM
at libsvm.LibSVM.<clinit>(LibSVM.java:28)
at myapp.TouchDisplayView.onTouchEvent(TouchDisplayView.java:159)
... stacktrace
我阅读了 How do I add a library project to Android Studio?, How to add classpath in an Android Studio project,但没有成功(对于后者,我卡在了第 5 步,因为 Android Studio 在创建新模块时无法识别我的 .jar)。
我在我的 build.gradle
中添加了 compile files("libs/javaml/javaml-0.1.7.jar")
,还有来自 javaml/lib/
"for more convenience" 的所有文件,如文档所述(java-ml.sourceforge.net/content/installing-library).然后建立干净,并重建。还是不行。
令我感到奇怪的是,Android Studio 可以毫不费力地找到 类,但出于某种原因,我的 phone 不敢苟同。
到目前为止我的树:i.stack.imgur.com/P2DY4.png
如果有人可以指示我如何进行,我将非常高兴。提前致谢!
好的,所以我真的不知道发生了什么,但我重新编译了所有内容,卸载了我 phone 上的应用程序,重新构建了所有内容,现在它可以运行了。不知道为什么,因为这个问题我纠结了一个下午
抱歉问题不是问题。