realm-java: Not a Realm file and Native exception
Hi, My crash report keeps receiving these exceptions from some users. But it never happened on my test device or emulator. What is the possible cause?
Here’s how I write data to Realm:
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
autoIncrement ++;
MyRealmObject data = realm.createObject(MyRealmObject.class, id);
data.setContent( gson.toJson( myData ) ); // String, length range: 7000 ~ 60000
data.setPage( page ); // int
}
});
Here’s how I read data from Realm:
RealmQuery<MyRealmObject> query = realm.where(MyRealmObject.class);
query.findAllSorted( MyRealmObject.PAGE, Sort.ASCENDING );
It looks like the user has to remove the app or clear all data to make realm works again. Is this means the Realm database is crashed?
Firebase Crash Report:
Exception java.lang.RuntimeException: Unable to create application com.ihad.ptt.App: io.realm.exceptions.RealmFileException: Unable to open a realm at path ‘/data/data/com.ihad.ptt/files/default.realm’: Not a Realm file. (Not a Realm file) in /home/cc/repo/realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp line 87 Kind: ACCESS_ERROR. android.app.ActivityThread.handleBindApplication (ActivityThread.java:5665) android.app.ActivityThread.-wrap2 (ActivityThread.java) android.app.ActivityThread$H.handleMessage (ActivityThread.java:1573) android.os.Handler.dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:173) android.app.ActivityThread.main (ActivityThread.java:6459) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:938) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:828) arrow_drop_down Caused by io.realm.exceptions.RealmFileException: Unable to open a realm at path ‘/data/data/com.ihad.ptt/files/default.realm’: Not a Realm file. (Not a Realm file) in /home/cc/repo/realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp line 87 io.realm.internal.SharedRealm.nativeGetSharedRealm (SharedRealm.java) io.realm.internal.SharedRealm.getInstance (SharedRealm.java:208) io.realm.internal.SharedRealm.getInstance (SharedRealm.java:186) io.realm.BaseRealm.compactRealm (BaseRealm.java:586) io.realm.Realm.compactRealm (Realm.java:1565) com.ihad.ptt.domain.dao.realm.impl.RealmMigration.init (RealmMigration.java:29) com.ihad.ptt.App.onCreate (App.java:95) android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1037) android.app.ActivityThread.handleBindApplication (ActivityThread.java:5662) android.app.ActivityThread.-wrap2 (ActivityThread.java) android.app.ActivityThread$H.handleMessage (ActivityThread.java:1573) android.os.Handler.dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:173) android.app.ActivityThread.main (ActivityThread.java:6459) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:938) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:828)
Native Exception:
Build fingerprint: ‘htc/pmeuhl_00709/htc_pmeuhl:6.0.1/MMB29M/801953.5:user/release-keys’ Revision: ‘0’ ABI: ‘arm64’ pid: 13207, tid: 13207, name: com.ihad.ptt >>> com.ihad.ptt <<< signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7f62978008 x0 0000000000000000 x1 0000007f62908ca0 x2 0000000000000008 x3 0000000000014b00 x4 0000000000ffffff x5 000000000000003f x6 0000000000000040 x7 0000007f62978008 x8 000000000000006d x9 0000000000000000 x10 0000000000000000 x11 0000000000000040 x12 0000000000000010 x13 0000007f84b37a90 x14 000000559a211000 x15 0000007f84b37ad8 x16 0000007f84b30a58 x17 0000000000000000 x18 0000000000000001 x19 000000559a563900 x20 0000000000000000 x21 0000007fdafd3230 x22 0000007fdafd3540 x23 000000559a5634f0 x24 0000007fdafd3640 x25 0000007f62995000 x26 000000559a563700 x27 0000007fdafd3440 x28 000000559a563710 x29 0000007fdafd3160 x30 0000007f627f87d8 sp 0000007fdafd3160 pc 0000007f627b346c pstate 0000000020000000
backtrace: #00 pc 00000000000e746c /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so #01 pc 000000000012c7d4 /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so #02 pc 00000000000a530c /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so #03 pc 00000000000be754 /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so #04 pc 00000000000c26ec /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so #05 pc 00000000000bbcd0 /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so #06 pc 000000000004d2c0 /data/app/com.ihad.ptt-1/lib/arm64/librealm-jni.so (Java_io_realm_internal_SharedRealm_nativeGetSharedRealm+384) #07 pc 000000000220c74c /data/app/com.ihad.ptt-1/oat/arm64/base.odex (offset 0x1051000)
Version of Realm and tooling
Realm version(s): 2.2.2
Realm sync feature enabled: no
Android Studio version: IntelliJ IDEA 2016.3.4
Which Android version and device: Android 6.0 HTC 10
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 34 (18 by maintainers)
@MariusBoepple is the Realm encrypted in your case?
@KimiChiu no worries, i can totally read traditional Chinese 😛