1、现象:
手机上调测时报错:android.database.sqlite.SQLiteException: near "$change": syntax error (code 1):
在使用SQLite动态创建表时报错,多了一个$change字段。
于是反复读代码,发现应该不会有$change这个字段。表字段是通过注解方式实现,getDeclareFields方式获取的字段。
2、经过查找,发现多了一个
public static transient volatile com.android.tools.fd.runtime.IncrementalChange这么信息,是系统自动生成的。于是怀疑是工具的原因
3、查找后发现,是android studio2的Instant Run功能导致,默认该功能是开启的。关闭了该功能就好使了。
总结:以后用android studio使用反射就需要注意了,有可能该问题导致多了字段。如果写代码时,也可以加上判断就比较完美些。
在使用Android Studio进行开发时,若遇到动态创建表时报错且出现额外字段的情况,可能是由Instant Run功能导致的。通过关闭该功能可解决此问题。建议在代码中加入判断逻辑以避免此类意外。
2080

被折叠的 条评论
为什么被折叠?



