我有一个扩展SugarRecord
的课程,这里是:
class Advertiser : SugarRecord<Advertiser> {
var number: String? = null
var name: String? = null
constructor() {}
constructor(number: String, name: String) {
this.number = number
this.name = name
}
}
我在清单中有糖元数据:
<meta-data android:name="DATABASE" android:value="sugar_example.db" />
<meta-data android:name="VERSION" android:value="2" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" />
我尝试创建Advertiser
的新实例并将其保存在MainActivity.kt
中:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val advertiser = Advertiser("123123", "test advertiser")
advertiser.save()
}
}
但是我得到了异常,这里是堆栈跟踪:
致命的例外:主要 处理:ge.ketili.team.blocksms,PID:22305 java.lang.RuntimeException:无法启动活动 ComponentInfo {ge.ketili.team.blocksms / ge.ketili.team.blocksms.MainActivity}: java.lang.NullPointerException:尝试调用虚方法 &#39; com.orm.Database com.orm.SugarApp.getDatabase()&#39;在null对象上 参考 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2706) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767) 在android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1514) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:163) 在android.app.ActivityThread.main(ActivityThread.java:6205) at java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:904) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 引起:java.lang.NullPointerException:尝试调用虚拟 方法&#39; com.orm.Database com.orm.SugarApp.getDatabase()&#39;在null 对象参考 在com.orm.SugarRecord.save(SugarRecord.java:45) 在ge.ketili.team.blocksms.MainActivity.onCreate(MainActivity.kt:15) 在android.app.Activity.performCreate(Activity.java:6864) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
答案 0 :(得分:1)
您的申请应为SugarApp
中的AndroidManifest.xml
。
<application android:name="com.orm.SugarApp"
...
</application>