Android Gram版本升级错误与gradle

时间:2016-07-25 18:59:15

标签: android android-gradle realm build.gradle

我们正在开发一个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对象都缺失。一旦弃用的方法被注释掉,构建就成功了。

2 个答案:

答案 0 :(得分: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方法。

答案 1 :(得分:6)

olds verson5+到Realm的主要升级需要从以下更改:

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

收件人:

realm.where(example.class)
    .sort("field")
    .findAll();