Realm.io no puede conseguir ejemplos para trabajar
Im fracaso para empezar con Realm.io, lo he intentado en mi propio proyecto así como con el IntroExample.
Cuando intento buscar algo, consigo:
- Manera correcta de obtener el objeto Realm por su clave principal en Android Java
- Java.lang.NoClassDefFoundError: Resolución fallida de: Lio / realm / internal / SharedRealm $ Durabilidad
- ¿Cómo encubierta realmResult a la matriz y pasar a otra actividad?
- RealmBaseAdapter con encabezados de sección
- Escritura y lectura entre subprocesos con Android Realm
java.lang.IllegalStateException: Llamada de método mutable durante la transacción de lectura.
Cuando intento almacenar algo, consigo:
io.realm.exceptions.RealmException: No se pudo encontrar la clase de proxy generada
Parece que tengo un defecto fundamental en alguna parte.
apply plugin: 'com.android.application' android { compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "lorem.ipsum" minSdkVersion 14 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'org.jsoup:jsoup:1.8.+' compile 'io.realm:realm-android:0.71.0' }
- Inyección de dependencia en servicio
- ¿Puedo tener arrayList de cadena en objeto de reino android
- Android Realm - Objeto de Realm de paso usando Intent
- Android: Realm + Retrofit - Serializar apiresponse
- ¿Cómo sincronizar los datos del servidor en la aplicación android?
- Consultar objetos Realm anidados encapsulados en RealmList en RealmResults
- Cómo manejar la migración de dominios si los usuarios omitir las actualizaciones
- Getter no está asociado a ningún campo - Realm
Haga una anotación @RealmClass
a su clase de modelo. Luché con el mismo problema y fui un poco más profundo en la generación de la clase de proxy de Realm. Sólo se generan clases con la anotación @RealmClass.
@RealmClass public class Category extends RealmObject { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
He intentado ejecutar su código de ejemplo y tiene un montón de excepciones con respecto a su clase de modelo. Parece que los getters y setters han cambiado el nombre de la predeterminada, que actualmente rompe el procesador de anotación.
He intentado cambiar la clase del modelo a:
public class DataItem extends RealmObject { private String uuid; private String content; private boolean bool; public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public boolean isBool() { return bool; } public void setBool(boolean bool) { this.bool = bool; } }
que parecía funcionar.
Una combinación de respuesta https://stackoverflow.com/a/26294208/1251958 y respuesta https://stackoverflow.com/a/26326314/1251958 lleva al éxito.
Después de agregar la anotación @RealmClass @ Philluxx metioned, tengo errores en AndroidStudio señalando la sintaxis requerida como se menciona por @ChristianMelchior
Nota: Es probable que tenga que borrar los datos de la aplicación, ya que descuidar que hacer o bien parece conducir a una base de datos dañada que conduce a fallos posteriores.
Emanuele de Realm aquí.
He echado un vistazo al proyecto de ejemplo que publicó en los comentarios y el único problema que encontré fue en el nombramiento de los getters y setters. Seguramente necesitamos documentar esto mejor pero para obtener fácilmente un comportamiento predecible debes dejar que el IDE genere automáticamente los getters y setters para ti. Una nota sobre los booleanos: parece que si tienes una llamada booleana isValid
Android Studio generará los isValid()
llamados isValid()
y setValid()
. No estoy seguro de cómo se comporta Eclipse en el mismo escenario. De todos modos, en el procesador de anotación generamos algo como isIsValid()
y setIsValid()
que por supuesto es feo y se arreglará pronto. De todos modos, si nombra su booleano simplemente valid
todo funcionará bien.