Android Gram版本升级错误与gradle

gpo*_*pov 4 android realm build.gradle android-gradle-plugin

我们正在开发一个Android应用程序和SDK.SDK是应用程序的模块.我们仅在SDK中使用Realm(目前).我添加了一些关于Realm的gradle文件是sdk build.gradle文件.我已经在文件顶部添加了apply plugin:'realm-android'

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.realm:realm-gradle-plugin:0.90.1"
    } 
}
Run Code Online (Sandbox Code Playgroud)

在文件的底部.在我们尝试升级到最新版本(1.1.0)之前,所有内容都在编译和正常工作.

如果我将版本更改为1.0.0或更高版本,则无法编译.这里有一些错误日志: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.
Run Code Online (Sandbox Code Playgroud)

"消息"窗口还显示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.*
Run Code Online (Sandbox Code Playgroud)

如果我创建示例应用程序并将Realm(最新版本)添加到app gradle构建文件中,则可以正常运行.问题在于SDK模块中使用的Realm.

如果您已经遇到过类似问题并解决了问题,或者想知道出了什么问题,请分享.我们将不胜感激.

提前致谢.

编辑:

修复是我必须评论所有使用过的弃用方法,然后编译.编译器显示所有Realm对象都缺失.一旦弃用的方法被注释掉,构建就成功了.

小智 8

主要升级领域从olds verson5+需要从改变:

realm.where(example.class)
    .findAllSorted("field")
Run Code Online (Sandbox Code Playgroud)

至:

realm.where(example.class)
    .sort("field")
    .findAll();
Run Code Online (Sandbox Code Playgroud)


Epi*_*rce 7

Realm-Java Changelog:

  • 0.90.0

弃用

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()代替.

  • 0.91.0

突破性变化:删除了所有@Deprecated方法.