繁体   English   中英

Android Studio中不允许嵌套交易

[英]Nested transactions are not allowed in Android studio

我正在开发一个android应用程序,并且正在使用领域DB,我的应用程序运行正常,但是突然间,如果我想向DB写入应用程序,则会停止并给我此错误。

Getting MAX_TEXTURE_SIZE from GradienCache
Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
---
FATAL EXCEPTION: main
java.lang.IllegalStateException: Nested transactions are not allowed. Use
commitTransaction() after each beginTransaction().
atio.realm.internal.ImplicitTransaction.promoteToWrite(ImplicitTransaction.java:)
 at io.realm.Realm.beginTransaction(Realm.java:1454)
at.onClick(AddMedication.java:52)
   at android.view.View.performClick(View.java:4240)
 at android.view.View$PerformClick.run(View.java:17721)
      at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
              at android.os.Looper.loop(Looper.java:137)
             at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
           at java.lang.reflect.Method.invoke(Method.java:525)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
   at dalvik.system.NativeStart.main(Native Method)
Could not find class 'android.util.ArrayMap', referenced from method
com.android.tools.fd.runtime.MonkeyPatcher.monkeyPatchExistingResources

我尝试了许多可用的解决方案,但问题尚未解决!

任何帮助!

可能您两次调用beginTransaction()。 在第二个呼叫之前,您必须提交或回滚第一个呼叫。

beginTransaction(); // First call
try{
  doSomeWorkOnDB();
  commit();
} except (...){
  rollback();
}
...
beginTransaction(); // Second call
try{
  doOtherWorkOnDB();
  commit();
} except (...){
  rollback();
}

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM