问题:
使用ActiveAndroid这个ORM框架,在Debug的时候会出现以下报错信息导致crash
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String
com.activeandroid.TableInfo.getTableName()' on a null object reference
但是打包出来的release版本确是正常的。
查了很多资料基本都是在清单文件加入
< meta-data
android :name = “ AA_MODELS ”
android :value = “ com.myapp.model.Item,com.myapp.model.Category ” />
在官方文档中也找到了这段代码
翻译:
加快应用程序启动
ActiveAndroid将通过所有的文件来查找你的模型类。如果你有很多的依赖关系,这个过程可能会很慢。为了加速这个过程,在你的AndroidManifest中明确地指定你的Model类
但是!!!加完这段代码后还是报
java.lang.String com.activeandroid.TableInfo.getTableName()' on a null object reference
解决过程:
查看日志发现报com.activeandroid.TableInfo.getTableName()错误
的地方不在第一张表,而是第二张表,导出database查看发现只创建了第一张表。
那么是不是表一对应的model类与表二对应的model类是否存在格式上的差异,导致表不能创建。
但是在对比之后还是找不到错误原因。
重点来了。。
不知道自己怎么想的,我把清单注明的类与类之间逗号分割的空格去掉。然后run一下项目发现居然正常了。