Java 试图在SQLite数据库中保存数据-已清理(无重大问题)仍然强制关闭
我对StackOverflow有点陌生,我想知道我是否可以就以下问题提供一些信息:我正在尝试在Java 试图在SQLite数据库中保存数据-已清理(无重大问题)仍然强制关闭,java,android,sqlite,forceclose,Java,Android,Sqlite,Forceclose,我对StackOverflow有点陌生,我想知道我是否可以就以下问题提供一些信息:我正在尝试在sqlite数据库中保存一些数据,但每次尝试保存时,应用程序强制关闭,我不确定为什么。我已经清理了文件,没有问题。(我不知道我做错了什么——但有些东西编程不正确。) 爪哇: 问题出在您的onCreate() 您需要先调用setContentView(),然后才能尝试访问您的editText等等。您的视图在布局(xml文件)中处于“活动”状态,因此在对布局进行充气之前,这些视图都是空的。把它改成 @Ov
sqlite数据库中保存一些数据,但每次尝试保存时,应用程序强制关闭,我不确定为什么。我已经清理了文件,没有问题。(我不知道我做错了什么——但有些东西编程不正确。)
爪哇:
问题出在您的onCreate()
您需要先调用setContentView()
,然后才能尝试访问您的editText
等等。您的视图在布局(xml文件)中处于“活动”状态,因此在对布局进行充气之前,这些视图都是空的。把它改成
@Override
public void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.your_layout); // where your_layout is the name of the xml file with the layout you want to use minus the .xml extention
//this layout must contain all of these views below that you are trying to initialize
nameEt = (EditText) findViewById(R.id.nameEdit);
capEt = (EditText) findViewById(R.id.capEdit);
codeEt = (EditText) findViewById(R.id.codeEdit);
timeEt = (TimePicker) findViewById(R.id.timeEdit);
编辑
正如错误所说,您正试图将文本视图
强制转换为时间选择器
。这里
timeEt=(TimePicker)findviewbyd(R.id.timeEdit)代码>
(R.id.timeEdit)
指向文本视图
private TimePicker timeEt代码>
您将其声明为时间选择器
。如果希望它是一个时间选择器
,请在xml中更改它
`<TimePicker
android:id="@+id/timeEdit"
style="@style/StyleText"/> `
阅读日志时,请查看日志中显示的致命异常
。下一行应该说明它是什么(空指针异常、类强制转换异常等等),然后查找引用包名的第一行,它将告诉您从哪里开始查找错误。Ex.Main.java 57告诉您,无论在Main.java文件的第57行发生了什么致命异常。问题可能来自其他地方,但这始终是一个很好的起点,因此如果需要帮助,您可以缩小范围并发布相关代码。在访问UI元素之前,您忘记调用setcontentview
。我假设您删除了一些代码,因为onCreate()
在您不调用super时引发异常。onCreate(…)
是否也删除了setContentView()
,还是忘记了?另外,请正确缩进您的代码并删除所有不必要的换行符。我正确缩进并更新了上面的源代码(如果您注意到任何其他问题,请告诉我-仍然是强制关闭)
LOGCAT:
03-29 13:23:28.950: D/OpenGLRenderer(20744): Enabling debug mode 0
03-29 13:23:33.780: D/AndroidRuntime(20744): Shutting down VM
03-29 13:23:33.780: W/dalvikvm(20744): threadid=1: thread exiting with uncaught exception (group=0x41f7b930)
03-29 13:23:33.790: E/AndroidRuntime(20744): FATAL EXCEPTION: main
03-29 13:23:33.790: E/AndroidRuntime(20744): android.app.SuperNotCalledException: Activity {com.app.gamedemo/com.app.gamedemo.AddEditCountry} did not call through to super.onCreate()
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2146)
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.os.Handler.dispatchMessage(Handler.java:99)
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.os.Looper.loop(Looper.java:137)
03-29 13:23:33.790: E/AndroidRuntime(20744): at android.app.ActivityThread.main(ActivityThread.java:5041)
03-29 13:23:33.790: E/AndroidRuntime(20744): at java.lang.reflect.Method.invokeNative(Native Method)
03-29 13:23:33.790: E/AndroidRuntime(20744): at java.lang.reflect.Method.invoke(Method.java:511)
03-29 13:23:33.790: E/AndroidRuntime(20744): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-29 13:23:33.790: E/AndroidRuntime(20744): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-29 13:23:33.790: E/AndroidRuntime(20744): at dalvik.system.NativeStart.main(Native Method)
03-29 13:23:35.390: I/Process(20744): Sending signal. PID: 20744 SIG: 9
@Override
public void onCreate(Bundle savedInstanceState)
{
nameEt = (EditText) findViewById(R.id.nameEdit);
capEt = (EditText) findViewById(R.id.capEdit);
codeEt = (EditText) findViewById(R.id.codeEdit);
timeEt = (TimePicker) findViewById(R.id.timeEdit);
@Override
public void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.your_layout); // where your_layout is the name of the xml file with the layout you want to use minus the .xml extention
//this layout must contain all of these views below that you are trying to initialize
nameEt = (EditText) findViewById(R.id.nameEdit);
capEt = (EditText) findViewById(R.id.capEdit);
codeEt = (EditText) findViewById(R.id.codeEdit);
timeEt = (TimePicker) findViewById(R.id.timeEdit);
`<TimePicker
android:id="@+id/timeEdit"
style="@style/StyleText"/> `
super.onCreate(savedInstanceState);