安卓开发常见错误处理方案:
数据库方面:
1、创建数据库语法:单词写错会报出 syntax error 的语法错误
String sql="create table jsbcontent(id integer primary key autoincrement, jsbtitle varchar(256),jsbcontent varchar(256))";
2、执行SQL语句:db.execSQL("update user set username=?, password=? where id=?",new Object[]{user.getUsername(),user.getPassword(),user.getId()});
注意设置的字段和条件字段之间不能加逗号,否则会报出 near "where": syntax error (code 1): 类型的错误
数据库空指针错误;
SQLiteDatabase db=helper.getWritableDatabase();//表示helper没有初始化成功,在页面中实例化时要传对象
service=new JdbService(this.getContext());
R文件丢失的报红错误
~首先重新编译,可能是系统问题~
1.引入了错误的包名(删除)
2.引入的drawable图片出现了名字命名的错误,不能有数字和大写字母等不合规范的命名,后缀只能有一个“.”
3、R文件还未加载,按照提示导入R文件的包
4、运行程序时跳转无反应很可能是方法没有调用;
5、如果程序闪退,就是运行时异常,看日志修改
6、有时如果通过R.id.查找控件找不到已经添加id的控件,很可能是还没有自动导入当前的R包,通过提示import R包
7、自定义item布局间距的设置,整个布局文件的总高度要根据实际情况手动设定,不要match_parent,不然两个item之间的距离会很大
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="80dp"
8、从acvitity传值跳转到Fragment中数据显示不同步的问题,
在onStart的方法中接收穿过来的值,就可以同步显示,在onCreate方法中调用只能是重启程序才能更新数据,在acvitity的生命周期中onstop后再执行onRestart方法,然后直接执行onStart方法,是不在执行oncreat方法的,也就是说onCreate方法只在程序启动的 时候执行一次
代码:
@Override
public void onStart() {
super.onStart();
intiView();
}
public void intiView(){
//设置布局加载器
rv_frgjsb.setLayoutManager(new LinearLayoutManager(this.getContext()));
service=new JdbService(this.getContext());
list =service.quaryAll();
adapter=new FrgJsbAdapter(this.getContext(),list);
rv_frgjsb.setAdapter(adapter);
title_addimg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getContext(),JsbAddActivity.class);
startActivity(intent);
JsbFragment.super.getActivity().finish();
}
});
9、getSerializableExtra(“item”)返回值为空不能执行的问题
利用:
Intent intent=getIntent();
if(intent.getSerializableExtra("item")!=null){
JsbMiddle middle= (JsbMiddle) intent.getSerializableExtra("item");条件语句加以判定,不为空的时候再用相应的实体类去接收对象
AIDL中service报空指针:很可能是intent的隐式调用没有添加action配置文件
<service
android:name=".MusicService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.work.MusicService"></action>
</intent-filter>
</service>
AppCompatActivity报红线:没有导入v7包
import android.support.v7.app.AppCompatActivity;