Java Android studio中不允许嵌套事务

Java Android studio中不允许嵌套事务,java,android,android-studio,genymotion,Java,Android,Android Studio,Genymotion,我正在开发一个android应用程序,我正在使用realm DB,我的应用程序工作正常,但突然,如果我想写入DB,应用程序停止并给我这个错误 Getting MAX_TEXTURE_SIZE from GradienCache Getting MAX_TEXTURE_SIZE from Caches::initConstraints() --- FATAL EXCEPTION: main java.lang.IllegalStateException: Nested transactions a

我正在开发一个android应用程序,我正在使用realm 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();
}

希望对你有帮助。

r.beginTransaction();r、 复制或更新(药物);r、 提交交易();这就是我使用的,它不会循环或者如果。。我只是想将数据从对象复制到领域对象。您是否在copyToRealmOrUpdate()方法中调用beginTransaction()?不,我没有,它只是我使用的内置方法。因此,copyToRealmOrUpdate(药物)可能会打开它自己的事务。不要自己动手,这样会很好的。欢迎你。如果您觉得它有用,请考虑通过点击复选标记接受它。