首先,由于这是我的第一个问题,我想对你们所有人说。这个社区非常棒,我每次在编码时都能找到帮助。不是这次。
所以,我正在为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选项运行以获取更多日志输出。建立失败
答案 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
}
}