【问题标题】:Sugar ORM can't save in KotlinSugar ORM 无法在 Kotlin 中保存
【发布时间】:2018-08-13 07:30:10
【问题描述】:

我有一个扩展 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:无法启动活动 组件信息{ge.ketili.team.blocksms/ge.ketili.team.blocksms.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“com.orm.Database com.orm.SugarApp.getDatabase()” 参考 在 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) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 引起:java.lang.NullPointerException:尝试调用虚拟 方法 'com.orm.Database com.orm.SugarApp.getDatabase()' 为空 对象引用 在 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)

【问题讨论】:

  • 完整堆栈跟踪?
  • 只是异常的确切原因
  • 这是您从 Logcat 获得的完整堆栈跟踪吗?
  • noo,它只是完整堆栈跟踪的 sn-p
  • 请发布完整的堆栈跟踪

标签: android kotlin sugarorm


【解决方案1】:

你的申请应该是SugarApp in AndroidManifest.xml

<application android:name="com.orm.SugarApp"
...
</application>

【讨论】:

  • 请注意,如果您不想放弃 name 属性,也可以让您的应用程序类扩展 SugarApp。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多