2013-08-19 2 views
0

Я попытался запустить AddEditRecipesActivity.java из RecipesActivity.java. В RecipesActivity есть список данных из datatable. Нажимая кнопку «Добавить» в RecipesActivity, вызывается AddEditRecipesActivity.java, где я вставляю данные в datatable. Но когда я нажал эту кнопку, мое приложение разбилось.NullPointerException в проекте android

Это сообщения LogCat.

08-20 04:13:20.315: E/Your TAG,(9425): Your Message 
- 08-20 04:13:20.315: E/Your TAG,(9425): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.behealthy/com.example.behealthy.AddEditRecipesActivity}: java.lang.NullPointerException 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2024) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.ActivityThread.access$600(ActivityThread.java:140) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.os.Handler.dispatchMessage(Handler.java:99) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.os.Looper.loop(Looper.java:137) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.ActivityThread.main(ActivityThread.java:4898) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at java.lang.reflect.Method.invokeNative(Native Method) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at java.lang.reflect.Method.invoke(Method.java:511) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at dalvik.system.NativeStart.main(Native Method) 
- 08-20 04:13:20.315: E/Your TAG,(9425): Caused by: java.lang.NullPointerException 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:228) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at com.example.behealthy.AddEditRecipesActivity.<init>(AddEditRecipesActivity.java:27) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at java.lang.Class.newInstanceImpl(Native Method) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at java.lang.Class.newInstance(Class.java:1319) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.Instrumentation.newActivity(Instrumentation.java:1057) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2015) 
- 08-20 04:13:20.315: E/Your TAG,(9425):  ... 11 more 

Спасибо.

+0

Ну, что-то, что вы пытаетесь использовать, равно null. Узнайте, что, тогда [почему] (http://stackoverflow.com/a/7159853/645270). («Что» легко, вы получите номер строки в logcat). Моя ссылка - только предположение. – keyser

ответ

2

От этой линии

Caused by: java.lang.NullPointerException 

мы знаем, что проблема в том, что что-то null. И от этой линии (первая строка после этого ссылается ваш проект)

at com.example.behealthy.AddEditRecipesActivity.<init>(AddEditRecipesActivity.java:27) 

мы знаем, что «то, что есть нуль» находится в строке 27 AddEditRecipesActivity

Посмотрите, что может быть null там и выяснить, почему это будет null. Если вам нужна дополнительная помощь, пожалуйста, разместите соответствующий код.

1

Переменная, к которой вы обращаетесь в AddEditRecipesActivity по строке 27, является null.

Если вы дважды щелкните сообщение в logcat, eclipse переведет вас в соответствующую строку.

Если вы не можете увидеть, какая переменная null попробуйте напечатать некоторые значения с

Log.d("MyTag", "The value of xyz="+xyz); 

Или запустить свой код под отладчиком.

+0

Это должен быть комментарий ... не ответить – Sushil

+0

@ Сушиль это флаг, если вы чувствуете себя сильно. Мое чувство OP заключалось в том, что такое руководство было необходимо, что также подтверждается ответом codeMagic. – andy256

+0

Это дискуссионный вопрос, как я предполагаю, но если они знают, как увидеть логарифм, а затем научить их, что это значит и как его использовать, это хороший ответ, на мой взгляд. Я бы предложил в будущем объяснить, как вы добрались до своего заключения. +1 хотя для двойного щелчка ... Я использую его, но часто забываю упомянуть его – codeMagic

Смежные вопросы