Ich versuche, Realm in meiner App von Version 0.85 auf Version 4.1.1 zu aktualisieren. In einigen Fällen gibt realm.beginTransaction nicht zurück. Ich habe versucht, es durch Realm.executeTransaction ohne Wirkung zu ersetzen. Hier sind die ausführliche Protokolle von Realm:Android Realm openTransaction gibt nicht zurück
V/REALM_JNI: --> Java_io_realm_internal_OsSchemaInfo_nativeCreateFromList
V/REALM_JNI: --> Java_io_realm_internal_OsRealmConfig_nativeCreate
V/REALM_JNI: --> Java_io_realm_internal_OsRealmConfig_nativeSetInMemory -1605354496
V/REALM_JNI: --> Java_io_realm_internal_OsRealmConfig_nativeEnableChangeNotification -1605354496
V/REALM_JNI: --> Java_io_realm_internal_OsRealmConfig_nativeSetSchemaConfig -1605354496
V/REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetSharedRealm -1605354496
V/REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetSchemaInfo -1605349584
V/REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeSetAutoRefresh -1605349584
V/REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeRegisterSchemaChangedCallback -1605349584
V/REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsClosed -1605349584
V/REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeBeginTransaction -1605349584
So ist es mir sieht, dass Relam stecken wird, während SharedRealm.nativeBeginTransaction Aufruf, die dem entspricht, was ich sah, als das Debuggen.
Hier ist mein Projekt build.gradle
buildscript {
repositories {
jcenter()
maven { url "https://jitpack.io" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.google.gms:google-services:3.1.0'
classpath ('io.realm:realm-gradle-plugin:4.1.1'){
exclude group: 'com.google.guava'
}
classpath ('com.google.firebase:firebase-plugins:1.1.0'){
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
Und mein Modul build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-crash'
apply plugin: 'realm-android'
// increment code and change version name on every released build
def code = 93
def version = "1.1.8"
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
versionCode code
versionName "$version"
multiDexEnabled true
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
buildTypes {
release {
buildConfigField "boolean", "DEV", "false"
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
multiDexEnabled false
}
debug {
buildConfigField "boolean", "DEV", "true"
signingConfig signingConfigs.release
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
implementation 'com.android.support:customtabs:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.google.guava:guava:23.4-android'
implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
implementation 'com.makeramen:roundedimageview:2.0.1'
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0'
implementation 'com.google.android.gms:play-services-analytics:11.6.0'
implementation 'com.google.firebase:firebase-messaging:11.6.0'
implementation 'com.google.android.gms:play-services-location:11.6.0'
implementation 'com.google.firebase:firebase-crash:11.6.0'
implementation 'net.hockeyapp.android:HockeySDK:5.0.3'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.squareup.okhttp3:okhttp:3.9.0'
implementation 'com.squareup.okio:okio:1.13.0'
implementation 'com.squareup:otto:1.3.8'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
implementation 'com.facebook.android:facebook-android-sdk:4.28.0'
}
apply plugin: 'com.google.gms.google-services'
Ich bin mit Android Studio 3.0 und hatte D8 zu ermöglichen, für den Aufbau
Jede Idee über was passiert?
'realem.beginTransaction()' wird nicht zurückgegeben, wenn es durch eine Schreib-Transaktion, die auf einem anderen Thread zur gleichen Zeit auftritt, blockiert wird. – EpicPandaForce
Bedeutet das, dass dies in früheren Versionen von Realm nicht der Fall war? –
Nun, technisch sollte es haben, obwohl es nicht über Prozesse blockiert wurde (was zu undefiniertem Verhalten führen könnte). Eine Möglichkeit besteht darin, dass die Benachrichtigungen in Ihrem Schema etwas langsam ausgewertet werden, was behoben werden kann, indem eine bidirektionale Verknüpfung entfernt und durch @LinkingObjects ersetzt wird. – EpicPandaForce