解决'java.lang.String com.activeandroid.TableInfo.getTableName()' on a null object reference的小坑

问题:

使用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一下项目发现居然正常了。

最终解决方法:

你可能感兴趣的:(解决'java.lang.String com.activeandroid.TableInfo.getTableName()' on a null object reference的小坑)