创建SQLite数据库时发生Android Studio 1.3.1错误
本文关键字:Studio 错误 Android SQLite 数据库 创建 | 更新日期: 2023-09-27 18:28:06
MainActivity.java的26行出现错误。显示JavaNULLPOINTER异常。请告诉我该怎么做才能把它取下来。我的代码在GitHub上。https://github.com/happyshravan/SQLite
LogCat错误(最新)
2-25 21:10:58.729 15661-15661/abcd.shravankr.sqlite D/memalloc﹕ /dev/pmemMapped buffer base:0x530b2000 size:10047488 offset:8511488 fd:66
12-25 21:11:06.679 15661-15661/abcd.shravankr.sqlite D/AndroidRuntime﹕ Shutting down VM
12-25 21:11:06.679 15661-15661/abcd.shravankr.sqlite W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40c15a68)
12-25 21:11:06.699 15661-15661/abcd.shravankr.sqlite E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275)
at android.view.View.performClick(View.java:3571)
at android.view.View$PerformClick.run(View.java:14247)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at
我在MainActivity.java 的26行中出错
第26行参考public void addButtonClicked(View view)
您在xml
中添加了两个按钮,id为addButton
和deleteButton
,但在MainActivity
中没有使用它们。
显示JavaNULLPOINTER异常
这是因为您希望在不初始化它们的情况下使用这两个按钮。
解决方案:
尝试将其添加到onCreate
中
Button addBtn=(Button)findViewById(R.id.addButton);
Button deleteBtn=(Button)findViewById(R.id.deleteButton);
已编辑
从main_activity
中删除android:onClick="addButtonClicked"
和android:onClick="deleteButtonClicked"
,并在MainActivity
中删除addButtonClicked
和deleteButtonClicked
。使用以下代码。
主要活动
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { // add button is clicked
Toast.makeText(getApplicationContext(),"Shravan",Toast.LENGTH_LONG).show();
Products product = new Products(shravansInput.getText().toString());
dbHandler.addProduct(product);
printDatabase();
}
});
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { // delete button is clicked
String inputText=shravansInput.getText().toString();
dbHandler.deleteProduct(inputText);
printDatabase();
});
把这两个放在onCreate
方法中。
我希望这会有所帮助。