2016-10-12 6 views
-1

これは非常に素朴な質問かもしれませんが、このjava.lang.Exceptionエラーを取り除くことはできません。私もちょうどjavaとandroidを学び始めました...これは解決するのが簡単な問題かもしれません。androidアクティビティでメソッドを実装するとjava.lang.Exceptionが発生する

私はアンドロイドで主なアクティビティを持っており、アプリ内に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が起こるのでしょうか?

+1

'Cを介したとして、手で自分のデバイスにファイルをコピーするユーザーを期待:あなたのモバイルデバイス上の/ユーザ/セス/デスクトップ/ iris.arff'? – Blackbelt

+0

ああ....そうではありません(私はそれがどのように問題になるかを見ることができます)最終的にデータはブルートゥースを通ってデータベースに入れられますが、今はサンプル分類器を実行しようとしていました。 – Seth

答えて

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ではありません。使用中のAndroidデバイスは約20億個あり、Windowsのマシンのデスクトップにあるファイルにアクセスすることはできません。その後、取得するAssetManagerを使用して、(あなたのアプリケーションでそれをパッケージ化するために)あなたのモジュールにassets/ディレクトリに置くことによって

  • は、次のような、Androidデバイス上にこのデータを取得する必要がありますその資産のInputStream、うまくいけば、おそらくinternal storage(例えば、getCacheDir()

  • に、インターネットからファイルをダウンロード ConverterUtils.DataSource

  • に直接それを渡します

  • external storage

関連する問題