尝试在空对象引用上调用虚拟方法 'java.lang.String com.activeandroid.TableInfo.getIdName()'

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

我收到这个错误

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

当我禁用 Instant 运行 时,我没有收到任何错误,我的项目工作正常。

但我想保持即时运行启用。 我发现一些地方,如果我想 启用 Instant 运行 我必须取消选中

ReStart the Activity on code changes

但这对我不起作用。

非常感谢对此的任何解决方案。

  1. 验证您的 androidManifest,并添加:

    <application... > <meta-data android:name="AA_MODELS" android:value="myfullpackage.myentity1, myfullpackage.myentity2 " />

  2. 验证您的 class 是否扩展到 Model 并且具有 super();
  3. 的构造函数

plus :增加清单中的 AA_DB_VERSION。这将强制 ActiveAndroid 重新生成您的架构。

问题已解决

您不必关闭瞬间 运行。只需设置

AndroidManifest.xml 中的应用程序节点内,在 运行 之前卸载该应用程序。

如果您使用的是 gradle 2.0,请将以下行添加到您的 AndroidManifest.xml 文件

<meta-data
    android:name="AA_MODELS"
    android:value="com.myspace.model.modelName"/>

android:value 应该是你模型的路径 class.