Android 工作室不允许嵌套事务

Nested transactions are not allowed in Android studio

我正在开发一个 android 应用程序,我正在使用领域数据库,我的应用程序运行正常,但突然间,如果我想写入数据库,应用程序停止并给我这个错误。

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();
}

希望对您有所帮助。