当realm-gradle-plugin:1.0.0添加到Android Studio项目

时间:2016-06-11 16:02:14

标签: android android-studio gradle realm

首先,由于这是我的第一个问题,我想对你们所有人说。这个社区非常棒,我每次在编码时都能找到帮助。不是这次。

所以,我正在为Android编写小应用程序,并且已经到了添加数据库层的时候了。为此,我已浏览realm installation guide并添加到我的项目 build.gradle 行:

classpath "io.realm:realm-gradle-plugin:1.0.0"

然后按行连接到我的应用模块 build.gradle

apply plugin: 'realm-android'

但是我的问题开始了。在添加这两行之前,gradle正在成功同步和构建项目,但在添加了两行后,它无法与错误消息同步:

  

错误:无法找到属性'选项'在任务':app:compileDebugJavaWithJack'。

事件日志显示:

  

17:24:48 Gradle sync开始了   17:24:50 Gradle sync失败:无法找到属性'选项'在任务':app:compileDebugJavaWithJack'。            有关更多详细信息,请参阅IDE日志(帮助|显示日志)

我已经尝试了 ./ gradlew clean 但它没有改变任何内容,也没有在我的主目录中删除 .gradle 并让Android Studio从头开始处理依赖关系。

这是我的项目 build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath "io.realm:realm-gradle-plugin:1.0.0"
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我的app模块 build.gradle

apply plugin: 'com.android.application' //
apply plugin: 'realm-android'

android {
    compileSdkVersion 23
    //compileSdkVersion 'android-N'
    //buildToolsVersion "23.0.3"
    buildToolsVersion "24.0.0-rc4"

    defaultConfig {
        applicationId "agh.jitp2.quizzy"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        jackOptions {
            enabled true
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    testCompile 'org.assertj:assertj-core:3.4.1'
    testCompile 'org.mutabilitydetector:MutabilityDetector:0.9.5'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
}

您是否有任何提示让我为构建此项目需要做些什么?

提前致谢并抱歉我的英语。

编辑:
@ cricket_007:上面是我进入消息窗口和事件日志。 Gradle控制台为空。但是当我使用--info标志在app模块 build.gradle 上运行 build 时,我得到以下输出:

  

[...]
    开始建设
    使用设置文件评估设置' C:_Dev_Repos \ AGH \ Quizzy \ settings.gradle'。
    项目已加载。使用构建文件的根项目' C:_Dev_Repos \ AGH \ Quizzy \ build.gradle'。
    包含的项目:[根项目' Quizzy',项目':app']
    评估根项目' Quizzy'使用构建文件' C:_Dev_Repos \ AGH \ Quizzy \ build.gradle'。
    评估项目':app'使用构建文件' C:_Dev_Repos \ AGH \ Quizzy \ app \ build.gradle'。
    创建配置编译
    创建配置apk
    创建配置     创建配置wearApp
    创建配置androidTestCompile
    创建配置androidTestApk
    创建配置androidTestProvided
    创建配置androidTestWearApp
    创建配置testCompile
    创建配置testApk
    创建配置testProvided
    创建配置testWearApp
    创建配置debugCompile
    创建配置debugApk
    创建配置debugProvided
    创建配置debugWearApp
    创建配置testDebugCompile
    创建配置testDebugApk
    创建配置testDebug提供了
    创建配置testDebugWearApp
    创建配置releaseCompile
    创建配置releaseApk
    创建配置releaseProvided
    创建配置releaseWearApp
    创建配置testReleaseCompile
    创建配置testReleaseApk
    创建配置testReleaseProvided
    创建配置testReleaseWearApp
    解析SDK,不允许缓存     解析C:_Dev \ Android \ SDK \ add-ons \ addon-google_apis-google-23 \ package.xml
    解析C:_Dev \ Android \ SDK \ build-tools \ 23.0.3 \ package.xml
    解析C:_Dev \ Android \ SDK \ build-tools \ 24.0.0-preview \ package.xml
    解析C:_Dev \ Android \ SDK \ docs \ package.xml
    解析C:_Dev \ Android \ SDK \ extras \ android \ m2repository \ package.xml
    解析C:_Dev \ Android \ SDK \ extras \ google \ m2repository \ package.xml
    解析C:_Dev \ Android \ SDK \ extras \ google \ usb_driver \ package.xml
    解析C:_Dev \ Android \ SDK \ extras \ intel \ Hardware_Accelerated_Execution_Manager \ package.xml
    解析C:_Dev \ Android \ SDK \ platform-tools \ package.xml
    解析C:_Dev \ Android \ SDK \ platforms \ android-23 \ package.xml
    解析C:_Dev \ Android \ SDK \ platforms \ android-N \ package.xml
    解析C:_Dev \ Android \ SDK \ sources \ android-23 \ package.xml
    解析C:_Dev \ Android \ SDK \ system-images \ android-23 \ google_apis \ x86 \ package.xml
    解析C:_Dev \ Android \ SDK \ tools \ package.xml
    在使用不兼容的插件时,在变量调试中禁用了增量Java编译     不使用增量javac编译。
    增量java编译是一个孵化功能     当您使用不兼容的插件时,在变体debugUnitTest中禁用增量Java编译     不使用增量javac编译。
    当您使用不兼容的插件时,在变体版本中禁用了增量Java编译     不使用增量javac编译。
    当您使用不兼容的插件时,在变量releaseUnitTest中禁用了增量Java编译     不使用增量javac编译。

     

失败:构建因异常而失败。

     
      
  • 出了什么问题:
      配置项目':app'发生了问题   >无法找到属性'选项'在任务':app:compileDebugJavaWithJack'。

  •   
  • 尝试:
      使用--stacktrace选项运行以获取堆栈跟踪。使用--debug选项运行以获取更多日志输出。

         

    建立失败

  •   

2 个答案:

答案 0 :(得分:1)

    jackOptions {
        enabled true
    }

JACK目前不支持注释处理(用于在Realm中生成代理),但它也不会生成文件,Realm通过Realm使用Java文件(字节码操作) Transformer,它将所有字段访问转换为代理方法调用。

实际上是为了删除强制性的getter / setter。但是通过这次更新,还可以在Realm Objects上使用接口,因此它是一个重要的一步。

答案 1 :(得分:1)

在尝试使用Realm时我也有同样的问题,所以我所做的只是依靠retro-lambda。这对我有用。

buildscript {
  repositories {
     mavenCentral()
  }

  dependencies {
     classpath 'me.tatarka:gradle-retrolambda:3.2.5'
  }
}

// Required because retrolambda is on maven central
repositories {
  mavenCentral()
}

apply plugin: 'com.android.application'
apply plugin: 'realm-android'
apply plugin: 'me.tatarka.retrolambda'

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}