为什么我的代码出现这样的错误我在MainActicity的oncreate方法中调用Util类中的deleteall方法

qq_41331921 2020-01-13 06:50:18
public class Util extends Application {
public void deleteall(){

243 SQLiteDBUtil db2 = new SQLiteDBUtil(getApplicationContext());
SQLiteDatabase sd2 = db2
.getWritableDatabase();
String sql = "delete from user";
String sql2 = "delete from kebiao";
String sql3 = "delete from note";
sd2.execSQL(sql);
sd2.execSQL(sql2);
sd2.execSQL(sql3);
// 这里进行关闭
db2.close();
}
}
public class MainActivity extends FragmentActivity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);

Util util = new Util();
util.deleteall();
}
}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.easytablemore, PID: 8427
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.easytablemore/com.example.easytablemore.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.app.Activity.getApplicationContext()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.app.Activity.getApplicationContext()' on a null object reference
at Util.Util.deleteall(Util.java:243)
at com.example.easytablemore.MainActivity.onCreate(MainActivity.java:84)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:214) 
at android.app.ActivityThread.main(ActivityThread.java:7356) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 
Process 8427 terminated.
...全文
208 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41331921 2020-01-15
  • 打赏
  • 举报
回复
上面诸位,感谢了
qq_41331921 2020-01-15
  • 打赏
  • 举报
回复
好,我有时间试试上面诸位的方法
JMSissi 2020-01-15
  • 打赏
  • 举报
回复
public class Util { public void deleteall(Context context){ SQLiteDBUtil db2 = new SQLiteDBUtil(context)); SQLiteDatabase sd2 = db2 .getWritableDatabase(); String sql = "delete from user"; String sql2 = "delete from kebiao"; String sql3 = "delete from note"; sd2.execSQL(sql); sd2.execSQL(sql2); sd2.execSQL(sql3); // 这里进行关闭 db2.close(); } } 在你的Activity中调用的时候Util. deleteall(this);
zhang106209 2020-01-14
  • 打赏
  • 举报
回复
你这个util是一个application ,你直接在util的oncreate中执行这个deleteall方法不就行了
qq_41331921 2020-01-14
  • 打赏
  • 举报
回复
很奇怪,我在oncreate里面直接执行deleteall里面这段代码不会报这个错,在oncreate里面调用deleteall这个方法就会报错
six周 2020-01-14
  • 打赏
  • 举报
回复
报的空指针,在MainActivity84行,上下文为空
王能 2020-01-14
  • 打赏
  • 举报
回复
哪有new application的? 哪有utils继承application的? 加个入参传一个context就行了,并且把extends application删掉

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧