2012-02-29 7 views
0

したがって、私のアプリはテキストビューからデータを読み込んでファイルに保存します。とにかく、私が送信ボタンを押すとクラッシュします。私はスケッチのないコードを削除しようとしましたが、それはうまくいきませんでした。ボタンをクリックするとアプリケーションがクラッシュする

とにかく、私のコードを見て、私が間違ったことを見ることができれば、それは素晴らしいことでしょう。誰かがLogCatをコピーする方法を知っていれば、それはすばらしいでしょう。

マイコード:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 
    send = (Button) findViewById(R.id.bLogIn); 
    user = (EditText) findViewById(R.id.eTuser); 
    pass = (EditText) findViewById(R.id.eTpassword); 
    staySignedIn = (CheckBox) findViewById(R.id.Cbstay); 
    send.setOnClickListener(this); 
    try { 
     Fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
     Fos.close(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    if (staySignedIn.isChecked()) { 

     String u = user.getText().toString(); 
     String p = pass.getText().toString(); 
     File f = new File(FILENAME); 
     try { 
      Fos = new FileOutputStream(f); 
      //Write some Data 
      Fos.close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


    } 

} 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.bLogIn: 
     if (pass.length() == 0) 
      Toast.makeText(this, 
        "Try to type in your username and password again!", 
        Toast.LENGTH_LONG).show(); 
     else if (user.length() == 0) 
      Toast.makeText(this, 
        "Try to type in your username and password again!", 
        Toast.LENGTH_LONG).show(); 
     else { 

      String u = user.getText().toString(); 
      String p = pass.getText().toString(); 
      Bundle send = new Bundle(); 
      send.putString("key", u); 
      send.putString("key", p); 
      Intent a = new Intent(LogIn.this, logincheck.class); 
      startActivity(a); 
      Toast.makeText(this, "Were signing you in!", Toast.LENGTH_LONG) 
        .show(); 
      break; 
     } 
    } 

} 

}

Logcat:

01-19 07:02:42.341: W/System.err(3074): java.io.FileNotFoundException: /userandpass (Read-only file system) 
    01-19 07:02:42.341: W/System.err(3074):   at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method) 
    01-19 07:02:42.341: W/System.err(3074):   at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152) 
    01-19 07:02:42.341: W/System.err(3074):   at java.io.FileOutputStream.<init>(FileOutputStream.java:97) 
    01-19 07:02:42.341: W/System.err(3074):   at java.io.FileOutputStream.<init>(FileOutputStream.java:69) 
    01-19 07:02:42.341: W/System.err(3074):   at com.gta5news.bananaphone.LogIn.onCreate(LogIn.java:59) 
    01-19 07:02:42.341: W/System.err(3074):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-19 07:02:42.341: W/System.err(3074):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
01-19 07:02:42.341: W/System.err(3074):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
01-19 07:02:42.341: W/System.err(3074):   at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
01-19 07:02:42.351: W/System.err(3074):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
01-19 07:02:42.351: W/System.err(3074):   at android.os.Handler.dispatchMessage(Handler.java:99) 
01-19 07:02:42.351: W/System.err(3074):   at android.os.Looper.loop(Looper.java:123) 
01-19 07:02:42.351: W/System.err(3074):   at android.app.ActivityThread.main(ActivityThread.java:4627) 
01-19 07:02:42.351: W/System.err(3074):   at java.lang.reflect.Method.invokeNative(Native Method) 
01-19 07:02:42.351: W/System.err(3074):   at java.lang.reflect.Method.invoke(Method.java:521) 
01-19 07:02:42.351: W/System.err(3074):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
01-19 07:02:42.351: W/System.err(3074):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
01-19 07:02:42.351: W/System.err(3074):   at dalvik.system.NativeStart.main(Native Method) 
01-19 07:02:47.371: W/KeyCharacterMap(3074): No keyboard for id 0 
01-19 07:02:47.371: W/KeyCharacterMap(3074): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
01-19 07:02:49.421: D/AndroidRuntime(3074): Shutting down VM 
01-19 07:02:49.421: W/dalvikvm(3074): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
01-19 07:02:49.421: E/AndroidRuntime(3074): FATAL EXCEPTION: main 
01-19 07:02:49.421: E/AndroidRuntime(3074): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.gta5news.bananaphone/com.gta5news.bananaphone.logincheck}; have you declared this activity in your AndroidManifest.xml? 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.app.Activity.startActivityForResult(Activity.java:2817) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.app.Activity.startActivity(Activity.java:2923) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at com.gta5news.bananaphone.LogIn.onClick(LogIn.java:95) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.view.View.performClick(View.java:2408) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.view.View$PerformClick.run(View.java:8816) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.os.Handler.handleCallback(Handler.java:587) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.os.Handler.dispatchMessage(Handler.java:92) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.os.Looper.loop(Looper.java:123) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at java.lang.reflect.Method.invoke(Method.java:521) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
01-19 07:02:49.421: E/AndroidRuntime(3074):  at dalvik.system.NativeStart.main(Native Method) 
+0

をごlogcatからスタックトレースを投稿してください。 – FoamyGuy

+0

logcatの例外を表示できますか? –

+0

なぜクラッシュするのか分かりませんが、onClick()のelse文の外にブレークしてはいけません。今は違いはありませんが、将来的には変わるかもしれません。 – Pluckerpluck

答えて

0

あなたはログを見た場合の答えがそれです。行を確認してください

E/AndroidRuntime(3074): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.gta5news.bananaphone/com.gta5news.bananaphone.logincheck}; have you declared this activity in your AndroidManifest.xml? 

マニフェストのボタンをクリックして開いている新しい活動を宣言していないと言われています。それをあなたのマニフェストに加えてください。うまくいくはずです。

マニフェストでlogincheckクラスを見つけようとしています。

サイドノートとして、Javaの規約に従ってください。クラス名などのためにラクダケーシングを使用してください。たとえば、あなたのクラスはLoginCheckのような名前でなければなりません。 Javaの規約の詳細here

マニフェストには既にアクティビティタグがあるはずです。あなたの新しい活動をこのように追加してください。

<activity name="com.gta5news.bananaphone.logincheck" /> 

そうすべきです。

+0

Ok私はそれを追加しますので、私はマニフェストに新しい意図を入れましたか? – lrobb

+0

ヤヤヤ! – lrobb

0

main 01-19 07:02:49.421: E/AndroidRuntime(3074): android.content.ActivityNotFoundException: Unable to find explicit activity class

あなたはAndroidManifest.xmlファイルにlogincheck活動を宣言していないを意味します。

はこのようにそれを追加します。あなたは他の支援(複数可)のために与えられているよう

<activity android:name=".logincheck" android:label="@string/app_name"></activity> 

android:name ...

+0

はい、私はそれを整理しました、達成はちょうどあなたに投稿を打つ、そうでなければ、私はあなたの答えを選択しました。 – lrobb

関連する問題