领域支持 Maven 或拥有最新源的 jar
Realm support maven or having jar of it's latest source
我这里的用例有点奇怪,我的项目分为 2 个模块,一个是服务器项目,另一个是 android-app,现在它们共享相同的模型 类。在 eclipse 中使用 maven 构建工具的服务器项目和在 Android studio 中使用 gradle 的 android-app。
看起来领域没有maven工件,也没有找到最新版本的jar文件。
请帮我找出有点奇怪的情况。
您需要对模型进行一些修改,以便在 android 和共享服务器项目之间共享。
您可以为您的服务器创建虚拟领域 classes,它可以通过 gradle 排除,并且您需要在完全相同的包中创建完全相同的 class。
类 服务器:
package io.realm;
import java.util.ArrayList;
public class RealmObject extends ArrayList
{
}
package io.realm;
import java.util.ArrayList;
public class RealmList<E> extends ArrayList
{
}
共享项目 gradle 应该忽略虚拟 class 并且可以使用领域 class:
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath "io.realm:realm-gradle-plugin:2.0.2"
}
}
repositories {
mavenCentral()
jcenter()
}
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
publishNonDefault true
defaultConfig {
minSdkVersion 19
targetSdkVersion 24
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java {
srcDirs 'src'
//Exclude server (fake) Realm dependent files to avoid conflicts with Realm framework
exclude '**/Ignore.java'
exclude '**/RealmObject.java'
exclude '**/RealmList.java'
exclude '**/PrimaryKey.java'
}
res.srcDirs = ['res']
aidl.srcDirs = ['aidl']
}
}
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
}
注意:服务器仍然不支持领域。我们只是调整以支持 android 和服务器工作。
最终模型:
import io.realm.RealmList;
import io.realm.RealmObject;
public class MyModel extends RealmObject
我这里的用例有点奇怪,我的项目分为 2 个模块,一个是服务器项目,另一个是 android-app,现在它们共享相同的模型 类。在 eclipse 中使用 maven 构建工具的服务器项目和在 Android studio 中使用 gradle 的 android-app。
看起来领域没有maven工件,也没有找到最新版本的jar文件。
请帮我找出有点奇怪的情况。
您需要对模型进行一些修改,以便在 android 和共享服务器项目之间共享。
您可以为您的服务器创建虚拟领域 classes,它可以通过 gradle 排除,并且您需要在完全相同的包中创建完全相同的 class。 类 服务器:
package io.realm;
import java.util.ArrayList;
public class RealmObject extends ArrayList
{
}
package io.realm;
import java.util.ArrayList;
public class RealmList<E> extends ArrayList
{
}
共享项目 gradle 应该忽略虚拟 class 并且可以使用领域 class:
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath "io.realm:realm-gradle-plugin:2.0.2"
}
}
repositories {
mavenCentral()
jcenter()
}
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
publishNonDefault true
defaultConfig {
minSdkVersion 19
targetSdkVersion 24
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java {
srcDirs 'src'
//Exclude server (fake) Realm dependent files to avoid conflicts with Realm framework
exclude '**/Ignore.java'
exclude '**/RealmObject.java'
exclude '**/RealmList.java'
exclude '**/PrimaryKey.java'
}
res.srcDirs = ['res']
aidl.srcDirs = ['aidl']
}
}
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
}
注意:服务器仍然不支持领域。我们只是调整以支持 android 和服务器工作。
最终模型:
import io.realm.RealmList;
import io.realm.RealmObject;
public class MyModel extends RealmObject