【发布时间】:2017-07-29 05:02:47
【问题描述】:
当我运行jniSvmTrain(svmTrainOptions + dataTrainPath + modelPath); 时,应用程序崩溃了,我不知道为什么(删除此行后它运行良好)。目的是构建一个基于 AndroidLibSVM 的应用程序,在 iris 数据集上对其进行训练。我按照此处的说明将 AndroidLibSVM 集成到 Android Studio 中:https://github.com/yctung/AndroidLibSvm。
我尝试在 AndroidLibSVM 上关注this tutorial。
这是 IrisActivity.java 文件的代码:
package example.iris;
import android.support.v7.app.AppCompatActivity;
import android.os.Environment;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class IrisActivity extends AppCompatActivity {
Button go;
String appFolderPath;
String systemPath;
static{
System.loadLibrary("jnilibsvm");
}
private native void jniSvmTrain(String cmd);
private native void jniSvmPredict(String cmd);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_iris);
go = (Button)findViewById(R.id.go);
systemPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/";
appFolderPath = systemPath + "libsvm/";
// iris.train is available here : https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/iris.scale
final String dataTrainPath = appFolderPath + "iris.train ";
final String dataPredictPath = appFolderPath + "iris.predict ";
final String modelPath = appFolderPath + "iris.model ";
final String outputPath = appFolderPath + "iris.output ";
final String svmTrainOptions = "-s 0 -t 2 -g 1 -r 0 ";
go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// The next line conducts the app to crash, but why ?
jniSvmTrain(svmTrainOptions + dataTrainPath + modelPath);
}
});
}
}
感谢您的帮助。
【问题讨论】:
-
错误是什么
-
jniSvmTrain(svmTrainOptions + dataTrainPath + modelPath);行导致应用崩溃(但 APK 文件由 Android Studio 生成并安装)。删除后,应用运行良好。