Android : 异常记录
查询大数据时 报错
android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
解决办法:
cursor = DB.rawQuery("select * from "+ DBhelpUtil.TABLE_NAME+" where id =?",new String[]{id+""});
// 解决报错;android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
// 设置CursorWindow的大小为5000000
CursorWindow cw = new CursorWindow("test", 5000000);
AbstractWindowedCursor ac = (AbstractWindowedCursor) cursor;
ac.setWindow(cw);
没有读、写配置权限
Process: com.example.mygetdata, PID: 21370
java.lang.SecurityException: Permission Denial: opening provider
com.android.providers.contacts.ContactsProvider2 from ProcessRecord{a76da5b
21370:com.example.mygetdata/u0a266} (pid=21370, uid=10266) requires
android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
数组适配器 里面只能是 TextView
Process: com.example.mygetdata, PID: 11963
java.lang.IllegalStateException:
ArrayAdapter requires the resource ID to be a TextView
每个线程只能创建一个Looper
java.lang.RuntimeException:
Unable to start receiver com.example.mygpsalert.MyReceiver:
java.lang.RuntimeException: Only one Looper may be created per thread
uid冲突
java.lang.SecurityException:
Specified package com.example.mygpsalert under uid 10620 but it is really 10621
这个异常的意思是指定的包名com.example.mygpsalert的UID是10620,但实际上它的UID是10621,
因此出现了Binder权限问题。这通常是由于应用程序在安装后被更新或重新安装导致的。
在这种情况下,系统会为应用程序分配一个新的UID,但是应用程序中的某些组件
(如ContentProvider)可能仍然使用旧的UID,从而导致权限问题。
解决这个问题的方法是:
卸载并重新安装应用程序,
或者在应用程序中更新使用UID的组件,以便它们使用正确的UID。
或者卸载之前应用 重启手机 再次安装
继续记录中...