簡體   English   中英

嘗試打開活動時出現LogCat致命錯誤

[英]LogCat FATAL ERROR when trying to open a activity

當我嘗試在我的應用程序中打開一個活動以使其顯示一些已保存的消息(我已將其保存在同一應用程序中的另一個活動中)時,它會強制關閉並在LogCat中向我顯示這些錯誤:

  10-08 18:22:17.243: E/AndroidRuntime(269): FATAL EXCEPTION: main
  10-08 18:22:17.243: E/AndroidRuntime(269): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mensagem/com.example.mensagem.Mensagenssalvas}: java.lang.NullPointerException
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.os.Handler.dispatchMessage(Handler.java:99)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.os.Looper.loop(Looper.java:123)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.ActivityThread.main(ActivityThread.java:4627)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at java.lang.reflect.Method.invokeNative(Native Method)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at java.lang.reflect.Method.invoke(Method.java:521)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at dalvik.system.NativeStart.main(Native Method)
  10-08 18:22:17.243: E/AndroidRuntime(269): Caused by: java.lang.NullPointerException
  10-08 18:22:17.243: E/AndroidRuntime(269):    at com.example.mensagem.Mensagenssalvas.Mensagens(Mensagenssalvas.java:41)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at com.example.mensagem.Mensagenssalvas.onCreate(Mensagenssalvas.java:26)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  10-08 18:22:17.243: E/AndroidRuntime(269):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
  10-08 18:22:17.243: E/AndroidRuntime(269):    ... 11 more

在我使用此LINK中的代碼之前,這很正常,但是在使用代碼之后,我試圖打開的活動中的數據庫column現在沒有打開。(這是為了顯示消息)。

Mensagenssalvas.java

 public class Mensagenssalvas extends Activity {

    public SQLiteDatabase db;

    ArrayList<String> list = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mensagenssalvas);
    db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null);

    Mensagens();
}

private void Mensagens() {
    // TODO Auto-generated method stub

    ListView user = (ListView) findViewById(R.id.lvMensagens);

    String[] campos = new String[] {"mensagemsalva", "mensagemenviada"};

    list = new ArrayList<String>();
    Cursor c = db.query( "mensagens", campos, null, null, null, null, null);
    c.moveToFirst();
    if(c.getCount() > 0) {
        while(true) {
           list.add(c.getString(c.getColumnIndex("mensagemsalva")).toString());
            if(!c.moveToNext()) break;
        }
    }

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, list);

    user.setAdapter(adapter);

   }
}

您需要檢查Mensagenssalvas.java的第41行,並找出導致NullPointerException的原因。

在許多情況下,您只是忘記對其進行初始化。

要解決的問題:請勿將要使用的內容設置為NULL,而應將其設置為0或“”,具體取決於它的類型。 您需要設置為具有“ EMPTY”或“ ZERO”值但不為NULL的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM