带有gradle的Android Realm版本升级错误

带有gradle的Android Realm版本升级错误,android,android-gradle-plugin,realm,build.gradle,Android,Android Gradle Plugin,Realm,Build.gradle,我们正在与SDK一起开发一个android应用程序。SDK是应用程序的一个模块。我们只在SDK中使用领域(目前)。我添加的关于Realm的唯一一个gradle文件是sdk build.gradle文件。我在文件顶部添加了应用插件:“realmandroid”,并 buildscript { repositories { jcenter() } dependencies { classpath "io.realm:realm-gradle-p

我们正在与SDK一起开发一个android应用程序。SDK是应用程序的一个模块。我们只在SDK中使用领域(目前)。我添加的关于Realm的唯一一个gradle文件是sdk build.gradle文件。我在文件顶部添加了应用插件:“realmandroid”,并

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.realm:realm-gradle-plugin:0.90.1"
    } 
}
在文件的底部。在我们尝试升级到最新版本(1.1.0)之前,一切都正常编译和工作

如果我将版本更改为1.0.0或更高版本,它将无法编译。以下是一些错误日志: 梯度控制台:

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.
“消息”窗口还显示来自Gradle生成的一些错误消息:

Error:(134, 32) error: no suitable method found for          findAllSorted(String,Sort,String,Sort,String,Sort)
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)
Error:Execution failed for task ':sdk:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.*
如果我创建示例应用程序并将Realm(最新版本)添加到应用程序gradle构建文件中,它就可以工作了。问题在于SDK模块中使用的领域

如果您已经遇到了一些类似的问题并解决了它们,或者知道问题出在哪里,请与我们分享。我们将不胜感激

提前谢谢

编辑:

解决办法是我必须对所有使用过的不推荐的方法进行注释,然后进行编译。编译器将所有领域对象显示为丢失。一旦不推荐的方法被注释掉,构建就成功了

  • 0.90.0
不赞成

Realm.allObjects*()
。改用
Realm.where(clazz.findAll*()

Realm.distinct*()
。改用
Realm.where(clazz).distinct*()

dynamicrelm.allObjects*()
。使用
dynamicrelm.where(className).findAll*()

dynamicrelm.distinct*()
。改用
dynamicrelm.where(className).distinct*()

Realm.allObjectsSorted(字段,排序,字段,排序,字段,排序)
。改用
RealmQuery.findAllSorted(字段[],排序[])

RealmQuery.findAllSorted(字段,排序,字段,排序,字段,排序)
。改用
RealmQuery.findAllSorted(字段[],排序[])

RealmQuery.findAllSortedAsync(字段、排序、字段、排序、字段、排序)
。改用
RealmQuery.findAllSortedAsync(字段[],排序[])

RealmConfiguration.setModules()
。改用
RealmConfiguration.modules()

Realm.refresh()
DynamicRealm.refresh()
。使用
Realm.waitForChange()
/
stopWaitForChange()
DynamicRealm.waitForChange()
/
stopWaitForChange()

  • 0.91.0

破坏性更改:删除了所有@Deprecated方法。

olds-verson
5+
的主要领域升级需要从以下位置更改:

realm.where(example.class)
    .findAllSorted("field")
致:


谢谢你的评论。问题是它不允许我使用基本领域类(io.Realm.Ream、RealmObject等),因为它们不存在,所以我所有与领域相关的代码都无法编译。我用黄色标记了问题的原因。但是,您应该能够使用
RealmObject
等等,只要库提供通过RealmModule公开的模式。我想问题在于Gradle和构建过程本身。我不得不评论所有不推荐的地方,然后它成功编译了。编译器不仅显示了丢失的弃用类和函数,还显示了几乎所有的领域类。啊,那么问题是清理/重建如何在相同的结果中包含
distinct
?在最新的更新之后,它将抛出distinct。
realm.where(example.class).sort(“field”,sort.DESCENDING).findAll()Distinct。
realm.where(example.class)
    .sort("field")
    .findAll();