android 开发故障记录

时间:  2014.07.02

描述: 原本正常工作的eclipse,突然不能在graphical layout界面显示xml文件

解决: 系统还原

 

时间:2014.07.15

描述:不能在graphical layout界面显示xml文件,error log中有“Failed to find style 'textViewStyle' in current theme”

解决:layout预览界面(Graphic Layout),右上角有个Theme的选择项,默认为notitle,根据喜好随意设定值,我们这里设定为android以前默认的Theme.black.

参考:

http://blog.csdn.net/moon66sun/article/details/8090921


时间:2014.08.03

描述:自己创建的一个类,构造函数接收参数类型为Resources或者Context,在其中使用平常的资源获取方法,返回Java.lang.NullPointerException

解决:不是获取资源的方法出了问题,而是赋值对象(二维数组)被初始化成了null

 

时间:2014.08.16

描述:数据库操作返回失败

解决:SQLiteOpenHelper的onCreate方法只有在数据库文件不存在的时候才会调用,开发过程中onCreate没有创建实际的表,之后在其中添加创建表的动作也不会生效,需要在设备上将数据库文件删除,onCreate方法才会再次被调用。


时间:2014.08.30

描述:提取函数,返回Java.lang.NullPointerException

解决:Java其实是传值调用,采用返回值对目标对象赋值。


时间:2014.09.14

描述:在已有项目拷贝到git空文件目录,基于已有代码创建项目,运行报"Errors running builder 'Android Pre Compiler' on project"

解决:clean,重新启动android ADT


时间:2014.09.24

描述:数据库访问异常:

09-24 07:18:36.586: E/AndroidRuntime(1432):     at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1540)

09-24 07:18:36.586: E/AndroidRuntime(1432): java.lang.IllegalArgumentException: Empty values

原因:有一项属性的值类型与数据库中定义不一致

解决:修改属性类型


时间:2014.09.27

描述:在MainActivity的ListView上无法触发左右滑动(onTouchEvent)事件,TextView上可以。

原因: ListView是的onTouchEvent 优先权高于Activity的,前者把后者覆盖了,于是造成Activity onTouchEvent失效。

解决:使用public boolean dispatchTouchEvent(MotionEvent event) 代替 public boolean onTouchEvent(MotionEvent event)

参考:http://blog.csdn.net/knighttools/article/details/17793787


时间:2014.10.01

描述:DatePicker会调用两次Listener。

原因:DatePicker onClick 和 onStop 都会调用Listener

解决:使用Handler


时间:2014.10.08

描述:Activity com.shiningstone.push.NoticeBoard has leaked ServiceConnection com.shiningstone.push.NoticeBoard$1@b3fba458 that was originally bound here

原因:NoticeBoard 只有bind,没有unbind

解决:覆写onDestroy,增加unbind


时间:2014.10.25

描述:GeneMotion sign in 的时候出现unknown generic error

原因:

解决:先在官网登陆,再启动Genemotion,之后就正常


时间:2014.11.09

描述:ExpandableList只展开一项时,选择位置不正确

原因:事件选择不合适

解决:http://www.linuxidc.com/Linux/2011-08/41349.htm


时间:2014.11.09

描述:告警触发的Activity启动异常

原因:某些资源没有初始化(通过MainActivity)

解决:增加判断,增加必要资源的初始化


时间:2014.11.20

描述:logcat -f 没有生成log文件

原因:文件名中带:,不符合要求(在另一个模拟器可以)

解决:修改保存的log文件名

时间:2014.11.21

描述:调用exec logcat -c 不能清除log

原因:logcat -c需要root权限

解决:暂不解决


时间:2014.7.2

描述:调用支付宝接口返回错误(ALIPAY59)

原因:支付宝SDK会对传入的参数orderInfo进行检查

解决:使用标准格式的PARTNER和SELLER

 

时间:2014.7.2

描述:调用支付宝接口返回错误(ALIPAY64)

原因:支付宝SDK会对秘钥进行检查
解决:上传秘钥


时间:2014.7.7

描述:httpClient get超时(大文件) - Error buffer:Operation timed out after 60000 milliseconds with 15628018 out of 18087787 bytes received

原因:httpClient有超时机制
解决:使用setTimeoutForRead延长超时时间


时间:2014.7.11

描述:逻辑错误,在windows环境正常,android环境出错

原因:存在数组越界,有可能windows的未使用内存初始化的值使得判断条件正好能让循环顺利进行

void SmartList::remove(int deleteNum,int deletes[]) {
    int deleteIdx = 0;
    int idx = 0;
    
    for(INT8U i=0;i<len;i++) {
        if(i==deletes[deleteIdx]) {
            deleteIdx++;
        } else {
            kind[idx] = kind[i];
            idx++;
        }
    }

	len -= deleteNum;
}

解决

void SmartList::remove(int deleteNum,int deletes[]) {
    int deleteIdx = 0;
    int idx = 0;
    
    for(INT8U i=0;i<len;i++) {
        if( (i!=deletes[deleteIdx]) || (deleteIdx==deleteNum) ) {
            kind[idx] = kind[i];
            idx++;
        } else {
            deleteIdx++;
        }
    }

	len -= deleteNum;
}

时间:2014.7.20

描述:cocos2dx 从某个layer跳转到另一个layer,按钮无反应

原因:在前一个layer的析构函数中调用了removeAllListener,将后一个layer的init中添加的listener也删除了。
解决:由于前期编码不严谨,导致对layer相关listener记录需要较大工作量。改为对后一个layer的init的函数进行修改,增加延时,确保前一个layer的析构函数执行完成之后再添加listener。

时间:2014.7.26

描述:cocos2dx win32环境delete某vector中的元素异常(_crtIsValidHeapPointer)

原因:vector push的是数组元素
解决:new 并 复制数组元素。


时间:2014.8.10

描述:cocos2dx win32环境delete数组异常(_crtIsValidHeapPointer)

原因:数组操作越界
解决:严格按照new的数组大小操作数组元素







你可能感兴趣的:(android,数据库,layout,resources,Graphical,xml显示错误)