2015-11-05 113 views
3

我试图建立与科尔多瓦的Android项目,但我不断收到一个错误的gradle。我试着从命令行或Android Studio中建立,但收到了同样的信息:摇篮同步错误的Android:找不到属性“JavaCompiler进行”

* What went wrong: 
A problem occurred configuring root project 'android'. 
> A problem occurred configuring project ':CordovaLib'. 
    > Could not find property 'javaCompiler' on com[email protected]1aec405e. 

被科尔多瓦生成的文件的gradle,所以我不知道为什么它不工作。

这里是我的build.gradle文件,用多余的评论删除:

// GENERATED FILE! DO NOT EDIT! 

apply plugin: 'android' 

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    if (gradle.gradleVersion >= "2.2") { 
     dependencies { 
      classpath 'com.android.tools.build:gradle:1.0.0+' 
     } 
    } else if (gradle.gradleVersion >= "2.1") { 
     dependencies { 
      classpath 'com.android.tools.build:gradle:0.14.0+' 
     } 
    } else { 
     dependencies { 
      classpath 'com.android.tools.build:gradle:0.12.0+' 
     } 
    } 
} 

// Allow plugins to declare Maven dependencies via build-extras.gradle. 
repositories { 
    mavenCentral() 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.2.1' 
} 

ext { 
    apply from: 'CordovaLib/cordova.gradle' 
    // The value for android.compileSdkVersion. 
    if (!project.hasProperty('cdvCompileSdkVersion')) { 
     cdvCompileSdkVersion = null; 
    } 
    // The value for android.buildToolsVersion. 
    if (!project.hasProperty('cdvBuildToolsVersion')) { 
     cdvBuildToolsVersion = null; 
    } 
    // Sets the versionCode to the given value. 
    if (!project.hasProperty('cdvVersionCode')) { 
     cdvVersionCode = null 
    } 
    // Sets the minSdkVersion to the given value. 
    if (!project.hasProperty('cdvMinSdkVersion')) { 
     cdvMinSdkVersion = null 
    } 
    // Whether to build architecture-specific APKs. 
    if (!project.hasProperty('cdvBuildMultipleApks')) { 
     cdvBuildMultipleApks = null 
    } 
    // .properties files to use for release signing. 
    if (!project.hasProperty('cdvReleaseSigningPropertiesFile')) { 
     cdvReleaseSigningPropertiesFile = null 
    } 
    // .properties files to use for debug signing. 
    if (!project.hasProperty('cdvDebugSigningPropertiesFile')) { 
     cdvDebugSigningPropertiesFile = null 
    } 
    // Set by build.js script. 
    if (!project.hasProperty('cdvBuildArch')) { 
     cdvBuildArch = null 
    } 

    // Plugin gradle extensions can append to this to have code run at the end. 
    cdvPluginPostBuildExtras = [] 
} 

// PLUGIN GRADLE EXTENSIONS START 
apply from: "cordova-plugin-crosswalk-webview/fioriclient-xwalk.gradle" 
apply from: "kapsel-plugin-authproxy/fioriclient-smp_authProxy.gradle" 
apply from: "kapsel-plugin-logon/fioriclient-smp_logon.gradle" 
apply from: "kapsel-plugin-cdsprovider/fioriclient-cdsprovider.gradle" 
apply from: "kapsel-plugin-multidex/fioriclient-multidex.gradle" 
apply from: "kapsel-plugin-toolbar/fioriclient-smp_toolbar.gradle" 
apply from: "kapsel-plugin-voicerecording/fioriclient-smp_voicerecording.gradle" 
// PLUGIN GRADLE EXTENSIONS END 

def hasBuildExtras = file('build-extras.gradle').exists() 
if (hasBuildExtras) { 
    apply from: 'build-extras.gradle' 
} 

// Set property defaults after extension .gradle files. 
if (ext.cdvCompileSdkVersion == null) { 
    ext.cdvCompileSdkVersion = privateHelpers.getProjectTarget() 
} 
if (ext.cdvBuildToolsVersion == null) { 
    ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools() 
} 
if (ext.cdvDebugSigningPropertiesFile == null && file('debug-signing.properties').exists()) { 
    ext.cdvDebugSigningPropertiesFile = 'debug-signing.properties' 
} 
if (ext.cdvReleaseSigningPropertiesFile == null && file('release-signing.properties').exists()) { 
    ext.cdvReleaseSigningPropertiesFile = 'release-signing.properties' 
} 

// Cast to appropriate types. 
ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean(); 
ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? null : Integer.parseInt('' + cdvMinSdkVersion) 
ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode) 

def computeBuildTargetName(debugBuild) { 
    def ret = 'assemble' 
    if (cdvBuildMultipleApks && cdvBuildArch) { 
     def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch 
     ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1); 
    } 
    return ret + (debugBuild ? 'Debug' : 'Release') 
} 

// Make cdvBuild a task that depends on the debug/arch-sepecific task. 
task cdvBuildDebug 
cdvBuildDebug.dependsOn { 
    return computeBuildTargetName(true) 
} 

task cdvBuildRelease 
cdvBuildRelease.dependsOn { 
    return computeBuildTargetName(false) 
} 

task cdvPrintProps << { 
    println('cdvCompileSdkVersion=' + cdvCompileSdkVersion) 
    println('cdvBuildToolsVersion=' + cdvBuildToolsVersion) 
    println('cdvVersionCode=' + cdvVersionCode) 
    println('cdvMinSdkVersion=' + cdvMinSdkVersion) 
    println('cdvBuildMultipleApks=' + cdvBuildMultipleApks) 
    println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile) 
    println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile) 
    println('cdvBuildArch=' + cdvBuildArch) 
    println('computedVersionCode=' + android.defaultConfig.versionCode) 
    android.productFlavors.each { flavor -> 
     println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode) 
    } 
} 

android { 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
      jniLibs.srcDirs = ['libs'] 
     } 
    } 

    defaultConfig { 
     versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0") 
     if (cdvMinSdkVersion != null) { 
      minSdkVersion cdvMinSdkVersion 
     } 
    } 

    compileSdkVersion cdvCompileSdkVersion 
    buildToolsVersion cdvBuildToolsVersion 

    if (Boolean.valueOf(cdvBuildMultipleApks)) { 
     productFlavors { 
      armv7 { 
       versionCode cdvVersionCode ?: defaultConfig.versionCode + 2 
       ndk { 
        abiFilters "armeabi-v7a", "" 
       } 
      } 
      x86 { 
       versionCode cdvVersionCode ?: defaultConfig.versionCode + 4 
       ndk { 
        abiFilters "x86", "" 
       } 
      } 
      all { 
       ndk { 
        abiFilters "all", "" 
       } 
      } 
     } 
    } else if (!cdvVersionCode) { 
     def minSdkVersion = cdvMinSdkVersion ?: privateHelpers.extractIntFromManifest("minSdkVersion") 
     // Vary versionCode by the two most common API levels: 
     // 14 is ICS, which is the lowest API level for many apps. 
     // 20 is Lollipop, which is the lowest API level for the updatable system webview. 
     if (minSdkVersion >= 20) { 
     defaultConfig.versionCode += 9 
     } else if (minSdkVersion >= 14) { 
     defaultConfig.versionCode += 8 
     } 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_6 
     targetCompatibility JavaVersion.VERSION_1_6 
    } 

    if (cdvReleaseSigningPropertiesFile) { 
     signingConfigs { 
      release { 
       // These must be set or Gradle will complain (even if they are overridden). 
       keyAlias = "" 
       keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph. 
       storeFile = null 
       storePassword = "__unset" 
      } 
     } 
     buildTypes { 
      release { 
       signingConfig signingConfigs.release 
      } 
     } 
     addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release) 
    } 
    if (cdvDebugSigningPropertiesFile) { 
     addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug) 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
    // SUB-PROJECT DEPENDENCIES START 
    debugCompile project(path: "CordovaLib", configuration: "debug") 
    releaseCompile project(path: "CordovaLib", configuration: "release") 
    compile "com.android.support:support-v4:22.0.0" 
    compile "com.google.android.gms:play-services-gcm:7.3.0" 
    // SUB-PROJECT DEPENDENCIES END 
} 

def promptForReleaseKeyPassword() { 
    if (!cdvReleaseSigningPropertiesFile) { 
     return; 
    } 
    if ('__unset'.equals(android.signingConfigs.release.storePassword)) { 
     android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ') 
    } 
    if ('__unset'.equals(android.signingConfigs.release.keyPassword)) { 
     android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: '); 
    } 
} 

gradle.taskGraph.whenReady { taskGraph -> 
    taskGraph.getAllTasks().each() { task -> 
     if (task.name == 'validateReleaseSigning') { 
      promptForReleaseKeyPassword() 
     } 
    } 
} 

def addSigningProps(propsFilePath, signingConfig) { 
    def propsFile = file(propsFilePath) 
    def props = new Properties() 
    propsFile.withReader { reader -> 
     props.load(reader) 
    } 

    def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile')) 
    if (!storeFile.isAbsolute()) { 
     storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile()) 
    } 
    if (!storeFile.exists()) { 
     throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath()) 
    } 
    signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias') 
    signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword)) 
    signingConfig.storeFile = storeFile 
    signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword)) 
    def storeType = props.get('storeType', props.get('key.store.type', '')) 
    if (!storeType) { 
     def filename = storeFile.getName().toLowerCase(); 
     if (filename.endsWith('.p12') || filename.endsWith('.pfx')) { 
      storeType = 'pkcs12' 
     } else { 
      storeType = signingConfig.storeType // "jks" 
     } 
    } 
    signingConfig.storeType = storeType 
} 

for (def func : cdvPluginPostBuildExtras) { 
    func() 
} 

// This can be defined within build-extras.gradle as: 
//  ext.postBuildExtras = { ... code here ... } 
if (hasProperty('postBuildExtras')) { 
    postBuildExtras() 
} 

任何人都可以解释这个错误?我没有在我的gradle文件的任何地方看到任何叫做javaCompiler的属性,所以我想知道这是否是内部的东西。

更新:当我--stacktrace运行gradlew直接我得到以下的输出:

* Exception is: 
org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'android'. 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:91) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:86) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65) 
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504) 
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:83) 
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42) 
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35) 
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129) 
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) 
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) 
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) 
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51) 
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) 
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) 
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
    at org.gradle.launcher.Main.doAction(Main.java:33) 
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) 
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33) 
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130) 
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) 
Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':CordovaLib'. 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:91) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:86) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65) 
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504) 
    at org.gradle.api.internal.project.AbstractProject.evaluationDependsOn(AbstractProject.java:562) 
    at org.gradle.api.internal.project.AbstractProject.evaluationDependsOn(AbstractProject.java:554) 
    at org.gradle.api.Project$evaluationDependsOn$6.call(Unknown Source) 
    at com.android.build.gradle.BasePlugin$_ensureConfigured_closure189.doCall(BasePlugin.groovy:3340) 
    at com.android.build.gradle.BasePlugin.ensureConfigured(BasePlugin.groovy:3339) 
    at com.android.build.gradle.BasePlugin.resolveDependencyForConfig(BasePlugin.groovy:3255) 
    at com.android.build.gradle.BasePlugin.this$2$resolveDependencyForConfig(BasePlugin.groovy) 
    at com.android.build.gradle.BasePlugin$this$2$resolveDependencyForConfig$3.callCurrent(Unknown Source) 
    at com.android.build.gradle.BasePlugin.resolveDependencies(BasePlugin.groovy:3174) 
    at com.android.build.gradle.internal.VariantManager.createVariantData(VariantManager.java:464) 
    at com.android.build.gradle.internal.VariantManager.createVariantDataForProductFlavors(VariantManager.java:550) 
    at com.android.build.gradle.internal.VariantManager.populateVariantDataList(VariantManager.java:349) 
    at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:212) 
    at com.android.build.gradle.internal.VariantManager$createAndroidTasks$0.call(Unknown Source) 
    at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.groovy:463) 
    at com.android.build.gradle.BasePlugin$_createTasks_closure9.doCall(BasePlugin.groovy:408) 
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) 
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) 
    at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83) 
    at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31) 
    at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) 
    at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79) 
    ... 31 more 
Caused by: groovy.lang.MissingPropertyException: Could not find property 'javaCompiler' on com[email protected]3d874ee4. 
    at org.gradle.api.internal.AbstractDynamicObject.propertyMissingException(AbstractDynamicObject.java:43) 
    at org.gradle.api.internal.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:35) 
    at org.gradle.api.internal.CompositeDynamicObject.getProperty(CompositeDynamicObject.java:94) 
    at com.android.build.gradle.internal.api.LibraryVariantImpl_Decorated.getProperty(Unknown Source) 
    at com.uphyca.gradle.android.AndroidAspectJPlugin$_apply_closure3$_closure7.doCall(AndroidAspectJPlugin.groovy:45) 
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:63) 
    at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:110) 
    at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:115) 
    at org.gradle.api.DomainObjectCollection$all$1.call(Unknown Source) 
    at com.uphyca.gradle.android.AndroidAspectJPlugin$_apply_closure3.doCall(AndroidAspectJPlugin.groovy:38) 
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) 
    at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) 
    at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83) 
    at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31) 
    at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) 
    at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79) 
    ... 56 more 

回答

1

这显然是在gradle这个-Android的AspectJ的插件的缺陷见here。它也有一个fix checked in 11 days ago,似乎还没有发布。

我没有看到你build.gradle明确使用这个插件,也许一个不同的项目,或者您使用插件在内部使用它。

如果你的版本是设置为使用AspectJ的插件的最新可用版本,为什么不从源代码编译gradle这个-Android的AspectJ的插件安装到你的本地仓库,然后再试一次重建项目。

+0

gradle这个-Android的AspectJ的插件是在科尔多瓦分项目中使用。我能够手动指定以前的版本(0.9.12),现在一切正常。版本之间看起来并没有太多变化。谢谢您的帮助! – Nathan