java.lang.NoClassDefFoundError:用于在 Android 中使用 JavaML libsvm

Posted

技术标签:

【中文标题】java.lang.NoClassDefFoundError:用于在 Android 中使用 JavaML libsvm【英文标题】:java.lang.NoClassDefFoundError: for using JavaML libsvm in Android 【发布时间】:2017-01-26 09:51:03 【问题描述】:

我正在为 lib svm 使用 java ml。但是我在初始化 LibSvm 对象时遇到 java.lang.NoClassDefFoundError: libsvm.LibSVM$1 错误。我在我的 gradle 中添加了这些行:

dependencies 
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile project(':javaml-0.1.7')

这是活动代码。初始化 libSVM 时出现错误。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import net.sf.javaml.core.Dataset;

import libsvm.LibSVM;


public class MainActivity extends AppCompatActivity 

    public LibSVM libSVM;
    Dataset dataset;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
            libSVM = new LibSVM();

    

【问题讨论】:

如果您使用 proguard,请确保您添加了所需的规则 我正在使用 JavaML Libsvm for android 这可能对 ***.com/questions/37549159/… 有帮助,我个人从未使用过 Libsvm.. 您可能需要修复发布构建类型的 proguard(调试构建类型不需要) 【参考方案1】:

我之前只添加了 javaml-0.1.7.jar。 但是javaml-0.1.7的lib文件夹中也有一个libsvm.jar。 导入那个库解决了这个问题。

【讨论】:

以上是关于java.lang.NoClassDefFoundError:用于在 Android 中使用 JavaML libsvm的主要内容,如果未能解决你的问题,请参考以下文章