Attempt to invoke virtual method 'java.lang.String com.activeandroid.TableInfo.getIdName()' on a nul

本文介绍了使用ActiveAndroid框架时遇到的表创建失败问题及解决方案。主要包括正确配置AndroidManifest.xml中的AA_MODELS元数据,确保定义了正确的实体类,并在实体类构造函数中调用super()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Attempt to invoke virtual method ‘java.lang.String com.activeandroid.TableInfo.getIdName()’ on a null object reference

我们在学习 ActiveAndroid 时会报出这样的错误,对于初学者来说报出这样的错误,比较头疼。这里TableInfo 应该是表名, 但是用命令行打开db看, 是没有创建表的。上网查了一下:

第一步:我们在AndroidManifest.xml配置 meta-data 时除了 AA_DB_NAME 以及AA_DB_VERSION还需要将定义的表的实体类加上:
xml
<application... >
<meta-data
android:name="AA_MODELS"
android:value="myfullpackage.myentity1, myfullpackage.myentity2
"
/>

否则生成的db 是没有 我们自己定义的表的。

第二步
在定义表类时, 在空参数的构造函数加上 super();

如果之后发现 报错ActiveAndroid SQLite exception ‘No such table’

解决办法: AA_DB_VERSION 将版本加增加1,或者卸载app重新安装就好了。
希望对你有帮助^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值