安卓开发中常见运行错误的处理方法.txt

安卓开发常见错误处理方案:

数据库方面
            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之间的距离会很大

    
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;

你可能感兴趣的:(Exception)