这可能是一个非常天真的问题,但我无法解决这个java.lang.Exception错误。我也刚开始学习java和android所以......这可能是一个容易解决的问题。
所以我在android中有一个主要的活动,我想在app中实现一个weka ml分类器。现在我只是想加载一些数据。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ml_classifiers ml_object = new ml_classifiers();
int number = ml_object.loadData();
尝试加载数据......
public class ml_classifiers {
public int loadData() {
ConverterUtils.DataSource source = new ConverterUtils.DataSource("C:/Users/Seth/Desktop/iris.arff");
Instances data = source.getDataSet();
int num = data.numInstances();
return num;
}
}
为什么会出现java.lang.exception?
答案 0 :(得分:1)
为什么会出现java.lang.exception?
将来遇到崩溃时,use LogCat to examine the Java stack trace associated with the crash。如果您不理解堆栈跟踪或无法识别问题,并且您需要帮助,请将堆栈跟踪与代码一起发布。就目前而言,我们必须准确猜出您的应用中出现了什么问题。
在这种情况下,当你可能在其他地方崩溃时,你肯定会崩溃:
ConverterUtils.DataSource source = new ConverterUtils.DataSource("C:/Users/Seth/Desktop/iris.arff");
假设这是Android应用中的代码。
您正在尝试从C:/Users/Seth/Desktop/iris.arff
读取数据。这是Windows机器上文件的路径。 Android不是Windows。有大约20亿台Android设备正在使用中,而且它们都无法访问Windows机器桌面上的文件。
您需要将此数据放到Android设备上,例如:
将其放入模块中的assets/
目录(将其与您的应用打包),然后使用AssetManager
获取该资产的InputStream
,希望通过直接到ConverterUtils.DataSource
从互联网下载文件,可能是internal storage(例如getCacheDir()
)
希望用户手动将文件复制到设备上,例如通过external storage