gpt4 book ai didi

java.lang.IllegalStateException : Could not execute method of the activity caused by Invocation and NPE error

转载 作者:行者123 更新时间:2023-12-01 07:57:07 24 4
gpt4 key购买 nike

我似乎不知道如何修复 NPE 错误。是不是因为我插入的时候没有包含ID列?或者是因为数据库返回的数据类型不是 long (或 int)?

Activity :

public class CreateActivity extends ActionBarActivity {
Database db;
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_create);


}

public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.create, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

public void save(View v){
EditText theitems = (EditText) findViewById(R.id.editText1);
EditText thedescription = (EditText) findViewById(R.id.editText2);
String items = theitems.getText().toString();
String description=thedescription.getText().toString();
long success = db.insertRecord(items, description);
if (success != -1)
Toast.makeText(getApplicationContext(), "Inserted",Toast.LENGTH_LONG).show();

}

public void save_send(View v){

EditText theitems = (EditText)findViewById(R.id.editText1);
EditText thedescription = (EditText)findViewById(R.id.editText2);
String items = theitems.getText().toString();
String description=thedescription.getText().toString();
long success = db.insertRecord(items, description);
if (success != -1)
Toast.makeText(getApplicationContext(), "Inserted",Toast.LENGTH_LONG).show();
}

}

数据库文件

public class Database {

DatabaseHelper dbHelper;

public Database(Context context){
dbHelper = new DatabaseHelper(context, DatabaseHelper.DB_NAME, null, DatabaseHelper.DB_VERSION);
}

public long insertRecord(String items, String description) {
SQLiteDatabase db=dbHelper.getWritableDatabase();
ContentValues initialValues = new ContentValues();
initialValues.put(DatabaseHelper.KEY_ITEMS, items);
initialValues.put(DatabaseHelper.KEY_DESCRIPTION, description);
long id= db.insert(DatabaseHelper.DB_TABLE, null, initialValues);
return id;
}

public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}

public static final String KEY_ROWID = "id";
public static final String KEY_ITEMS = "items";
public static final String KEY_DESCRIPTION = "description";
public static final String DB_NAME = "shop";
public static final String DB_TABLE = "shop_record";

public static final int DB_VERSION = 2;

public static final String DB_CREATE = "create table if not exists shop_record ("
+ "ID int not null auto_increment,"
+ "items varchar(255),"
+ "description varchar(255),"
+ "date datetime,"
+ "send_status char(10)," + "primary key (ID));";

@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(DB_CREATE);
} catch (android.database.SQLException e) {
e.printStackTrace();
}

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}

}
}

日志猫:

02-24 00:07:26.908: D/OpenGLRenderer(16859): Render dirty regions requested: true
02-24 00:07:26.918: D/Atlas(16859): Validating map...
02-24 00:07:26.947: I/Adreno-EGL(16859): <qeglDrvAPI_eglInitialize:410>: QUALCOMM Build: 10/28/14, c33033c, Ia6306ec328
02-24 00:07:26.948: I/OpenGLRenderer(16859): Initialized EGL, version 1.4
02-24 00:07:26.974: D/OpenGLRenderer(16859): Enabling debug mode 0
02-24 00:07:32.126: D/AndroidRuntime(16859): Shutting down VM
02-24 00:07:32.127: E/AndroidRuntime(16859): FATAL EXCEPTION: main
02-24 00:07:32.127: E/AndroidRuntime(16859): Process: com.example.mythirdapp, PID: 16859
02-24 00:07:32.127: E/AndroidRuntime(16859): java.lang.IllegalStateException: Could not execute method of the activity
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.view.View$1.onClick(View.java:4007)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.view.View.performClick(View.java:4756)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.view.View$PerformClick.run(View.java:19749)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.os.Handler.handleCallback(Handler.java:739)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.os.Handler.dispatchMessage(Handler.java:95)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.os.Looper.loop(Looper.java:135)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.app.ActivityThread.main(ActivityThread.java:5221)
02-24 00:07:32.127: E/AndroidRuntime(16859): at java.lang.reflect.Method.invoke(Native Method)
02-24 00:07:32.127: E/AndroidRuntime(16859): at java.lang.reflect.Method.invoke(Method.java:372)
02-24 00:07:32.127: E/AndroidRuntime(16859): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-24 00:07:32.127: E/AndroidRuntime(16859): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
02-24 00:07:32.127: E/AndroidRuntime(16859): Caused by: java.lang.reflect.InvocationTargetException
02-24 00:07:32.127: E/AndroidRuntime(16859): at java.lang.reflect.Method.invoke(Native Method)
02-24 00:07:32.127: E/AndroidRuntime(16859): at java.lang.reflect.Method.invoke(Method.java:372)
02-24 00:07:32.127: E/AndroidRuntime(16859): at android.view.View$1.onClick(View.java:4002)
02-24 00:07:32.127: E/AndroidRuntime(16859): ... 10 more
02-24 00:07:32.127: E/AndroidRuntime(16859): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'long com.example.edit.Database.insertRecord(java.lang.String, java.lang.String)' on a null object reference
02-24 00:07:32.127: E/AndroidRuntime(16859): at com.example.edit.CreateActivity.save(CreateActivity.java:62)
02-24 00:07:32.127: E/AndroidRuntime(16859): ... 13 more
02-24 00:07:34.147: I/Process(16859): Sending signal. PID: 16859 SIG: 9
02-24 00:07:34.621: D/OpenGLRenderer(16947): Render dirty regions requested: true
02-24 00:07:34.629: D/Atlas(16947): Validating map...
02-24 00:07:34.663: I/Adreno-EGL(16947): <qeglDrvAPI_eglInitialize:410>: QUALCOMM Build: 10/28/14, c33033c, Ia6306ec328
02-24 00:07:34.664: I/OpenGLRenderer(16947): Initialized EGL, version 1.4
02-24 00:07:34.685: D/OpenGLRenderer(16947): Enabling debug mode 0

最佳答案

您得到 NPE 是因为您的 db=null 位于

long success = db.insertRecord(items, description);

所以在使用之前初始化

db=new Database(CreateActivity.this);

关于java.lang.IllegalStateException : Could not execute method of the activity caused by Invocation and NPE error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28688647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com