【问题标题】:Realm blocks Gson library领域块 Gson 库
【发布时间】:2015-03-09 16:09:05
【问题描述】:

我对 Realm 库有疑问。我在我的应用程序中实现了它,包括库。开始创建一些领域对象,以便与我的应用程序一起使用,然后我尝试启动应用程序,但令我惊讶的是,它卡在了第一页,这很奇怪,因为那里没有领域代码。 经过一番调试,我发现它在以下行崩溃了:

 String json = gson.toJson(user);

Gson 不为空。我还尝试取出领域,看看这是否是问题所在,没有它也能正常工作。 这是 crashlytics 告诉我的,几分钟后(它不会直接崩溃,只是被阻塞了一段时间,然后):

Fatal Exception: java.lang.OutOfMemoryError
OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack available  
java.lang.Object.wait (Object.java)
java.lang.Thread.run (Thread.java:818)  
dalvik.system.VMRuntime.concurrentGC (VMRuntime.java)
java.lang.Thread.run (Thread.java:818)
java.lang.Object.wait (Object.java)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.crashlytics.android.internal.am.a (SourceFile:44)
com.crashlytics.android.internal.aa.run (SourceFile:13)
java.lang.Thread.run (Thread.java:818)
java.lang.Object.wait (Object.java)
java.util.concurrent.FutureTask.get (FutureTask.java:162)
com.crashlytics.android.v.a (SourceFile:1936)
com.crashlytics.android.v.uncaughtException (SourceFile:307)
java.lang.ThreadGroup.uncaughtException (ThreadGroup.java:693)
java.lang.ThreadGroup.uncaughtException (ThreadGroup.java:690)

编辑:我传递给 gson(用户)的项目是一个名为 UserRecord 的类的实例,它扩展了 RealmObject。 难道这是因为它是一个领域对象而不是标准的安卓对象吗?

【问题讨论】:

  • 你做过内存配置文件吗?
  • 您的用户对象是否包含大量数据?
  • 它的 6 行,如用户名、名字、姓氏、电子邮件等,基本上是一个用户对象。没有做内存配置文件。但是 gson 尝试释放空间大约 2-3 分钟似乎很奇怪,直到它从小于 twitter 的 json 从 OOM 崩溃

标签: android database parsing gson realm


【解决方案1】:

我发现了问题:问题是我正在使用:

Gson gson = new Gson();

而不是我应该使用的:

Gson gson = new GsonBuilder()
    .setExclusionStrategies(new ExclusionStrategy() {
        @Override
        public boolean shouldSkipField(FieldAttributes f) {
            return f.getDeclaringClass().equals(RealmObject.class);
        }

        @Override
        public boolean shouldSkipClass(Class<?> clazz) {
            return false;
        }
    })
    .create();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多