我们正在开发一个Android应用程序和SDK。 SDK是应用程序的模块。我们仅在SDK中使用Realm(目前)。我添加了一些关于Realm的gradle文件是sdk build.gradle文件。我在文件顶部添加了 apply plugin:'realm-android',并且
C:\Program Files (x86)\Android\android-sdk\platform-tools
在文件的底部。在我们尝试升级到最新版本(1.1.0)之前,所有内容都在编译和正常工作。
如果我将版本更改为1.0.0或更高版本,则无法编译。这里有一些错误日志: Gradle控制台:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "io.realm:realm-gradle-plugin:0.90.1"
}
}
“消息”窗口还显示Gradle构建中的一些错误消息:
Note: Processing class TransactionUpdateAPICall
Note: Processing class Address
Note: Creating DefaultRealmModule
PersistentDataManager.java:134: error: no suitable method found for findAllSorted(String,Sort,String,Sort,String,Sort)
objects = query.findAllSorted(sorts.get(0).fieldName,sorts.get(0).dir,sorts.get(1).fieldName,sorts.get(1).dir,sorts.get(2).fieldName,sorts.get(2).dir);
^
method RealmQuery.findAllSorted(String,Sort) is not applicable
(actual and formal argument lists differ in length)
method RealmQuery.findAllSorted(String) is not applicable
(actual and formal argument lists differ in length)
method RealmQuery.findAllSorted(String[],Sort[]) is not applicable
(actual and formal argument lists differ in length)
method RealmQuery.findAllSorted(String,Sort,String,Sort) is not applicable
(actual and formal argument lists differ in length)
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
如果我创建示例应用并将Realm(最新版本)添加到app gradle构建文件中,则可以正常工作。问题在于SDK模块中使用的Realm。
如果您已经遇到过类似的问题并解决了问题,或者想知道出了什么问题,请分享。我们将不胜感激。
提前致谢。
修改
修复是我必须评论所有使用过的弃用方法,然后进行编译。编译器显示所有Realm对象都缺失。一旦弃用的方法被注释掉,构建就成功了。
答案 0 :(得分:7)
已过时
Realm.allObjects*()
。请改用Realm.where(clazz).findAll*()
。
Realm.distinct*()
。请改用Realm.where(clazz).distinct*()
。
DynamicRealm.allObjects*()
。请改用DynamicRealm.where(className).findAll*()
。
DynamicRealm.distinct*()
。请改用DynamicRealm.where(className).distinct*()
。
<强> Realm.allObjectsSorted(field, sort, field, sort, field, sort)
。请改用RealmQuery.findAllSorted(field[], sort[])
。
<强>
RealmQuery.findAllSorted(field, sort, field, sort, field, sort)
。请改用RealmQuery.findAllSorted(field[], sort[])
。
<强> RealmQuery.findAllSortedAsync(field, sort, field, sort, field, sort)
。请改用RealmQuery.findAllSortedAsync(field[], sort[])
。
RealmConfiguration.setModules()
。请改用RealmConfiguration.modules()
。
Realm.refresh()
和DynamicRealm.refresh()
。请改用Realm.waitForChange()
/ stopWaitForChange()
或DynamicRealm.waitForChange()
/ stopWaitForChange()
。
重大改变:删除所有@Deprecated方法。
答案 1 :(得分:6)
从olds verson
到5+
到Realm的主要升级需要从以下更改:
realm.where(example.class)
.findAllSorted("field")
收件人:
realm.where(example.class)
.sort("field")
.findAll();