Android Gradle插件0.13和android-apt 1.3出现错误

7
我刚把我的Android Gradle插件从0.12更新到0.13。另外,我下载了Gradle 2.1。然后,我尝试使用Android Studio 0.8.9 beta版本,但根据http://tools.android.com/tech-docs/new-build-system/version-compatibility ,我必须至少使用Android studio 0.8.11(金丝雀频道)。所以我升级了Android Studio,但仍然存在问题。
目前,我必须使用Gradle 1.10和Android Gradle插件0.12.+才能正常工作。
以下是AS报错: Error:No such property: projectDependencies for class: com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated 编辑: 这是我的build.gradle文件。
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        // works with 0.12.+ (not with 0.13.+)
        classpath 'com.android.tools.build:gradle:0.12.+'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        // The latest version of the android-apt plugin
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.3'
    }
}

allprojects {
    repositories {
        maven {  // For Android-ViewPagerIndicator
            url "http://dl.bintray.com/populov/maven"
        }
        jcenter()
        mavenCentral()
        maven {
            url "http://JRAF.org/static/maven/2"
        }
    }
}

这是我的gradle-wrapper.properties文件

#Fri Sep 19 17:50:42 CEST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
# use gradle-2.1-all.zip with android gradle plugin 0.13
distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip

编辑2:

apply plugin: 'com.android.application'
apply plugin: 'android-apt'

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId 'xxx'
        minSdkVersion 10
        targetSdkVersion 19
        versionCode xxx
        versionName 'xxx'
    }

    // For more information see
    // @link http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    signingConfigs {
        debug {
            storeFile file('../../KeyStore/debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
        release {
            storeFile file('xxx')
            storePassword 'xxx'
            keyAlias 'xxx'
            keyPassword 'xxx'
        }
    }

    buildTypes {
        // Just intern. This is alpha build
        debug {
            buildConfigField "boolean", "FORCE_GOOG_GEO_API", "false"  // can be set to true in debug but not in other buildTypes
            buildConfigField "boolean", "ENABLE_LOG", "true"
            buildConfigField "String", "HOST", "\"xxx\""
            versionNameSuffix '-alpha'
            signingConfig signingConfigs.debug
            zipAlign true
        }
        // For customer
        recette {
            buildConfigField "boolean", "FORCE_GOOG_GEO_API", "false"
            buildConfigField "boolean", "ENABLE_LOG", "false"
            buildConfigField "String", "HOST", "\"xxx\""
            versionNameSuffix '-recette'
            signingConfig signingConfigs.debug
            zipAlign true
        }
        // PreProd
        preprod {
            buildConfigField "boolean", "FORCE_GOOG_GEO_API", "false"
            buildConfigField "boolean", "ENABLE_LOG", "false"
            buildConfigField "String", "HOST", "\"xxx\""
            signingConfig signingConfigs.debug
            zipAlign true
        }
        // Prod
        release {
            buildConfigField "boolean", "FORCE_GOOG_GEO_API", "false"
            buildConfigField "boolean", "ENABLE_LOG", "false"
            buildConfigField "String", "HOST", "\"xxx\""
            signingConfig signingConfigs.release
            zipAlign true
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }

    // This is important, it will run lint checks but won't abort build
    lintOptions {
        abortOnError false
        disable 'MissingTranslation'
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'AndroidManifest.xml'
    }
}

apt {
    arguments {
        resourcePackageName android.defaultConfig.packageName
        androidManifestFile variant.processResources.manifestFile
    }
}

def GoogPlayServVersion = '5.0.+';
def GsonVersion = '2.2.4';
def LibPhoneNumbVersion = '5.9';
def GreenRobotVersion = '2.2.1';
def OkHttpVersion = '2.0.0';
def OkHttpConnVersion = '2.0.0';
def JacksonCore = '2.4.1';
def JacksonDatabind = '2.4.1';
def JacksonAnnotations = '2.4.0';
def SwitchVersion = '1.3.1';
def CroutonVersion = '1.8.4';
def ActionBarSherlockVersion = '4.4.0';
def ViewpagerIndicatorVersion = '2.4.1';
def PicassoVersion = '2.3.4';
def RoboSpiceVersion = '1.4.12';
def StickyListHeaders = '2.4.1';
def AAVersion = '3.1';

def RobotiumVersion = '5.2.1';

dependencies {
    // Include all jar in libs folder
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Google Play Services
    compile "com.google.android.gms:play-services:$GoogPlayServVersion"

    // Gson
    compile "com.google.code.gson:gson:$GsonVersion"

    // LibphoneNumber
    compile "com.googlecode.libphonenumber:libphonenumber:$LibPhoneNumbVersion"

    // GreenRobot
    compile "de.greenrobot:eventbus:$GreenRobotVersion"

    // OkHttp [We use repackaged version @see https://github.com/square/okhttp/issues/967]
    // compile "com.squareup.okhttp:okhttp:$OkHttpVersion"
    // compile "com.squareup.okhttp:okhttp-urlconnection:$OkHttpConnVersion"

    // Jackson
    compile "com.fasterxml.jackson.core:jackson-core:$JacksonCore"
    compile "com.fasterxml.jackson.core:jackson-databind:$JacksonDatabind"
    compile "com.fasterxml.jackson.core:jackson-annotations:$JacksonAnnotations"

    // Switch backport
    compile "org.jraf:android-switch-backport:$SwitchVersion"

    // Crouton lib
    compile("de.keyboardsurfer.android.widget:crouton:$CroutonVersion") {
        // exclusion is not neccessary, but generally a good idea.
        exclude group: 'com.google.android', module: 'support-v4'
    }

    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // The Support Repository (separate from the corresponding library) can be found in the Extras category.
    // compile 'com.android.support:support-v4:19.1.0'
    // compile 'com.android.support:gridlayout-v7:19.1.0'

    // ActionBarSherlock
    compile "com.actionbarsherlock:actionbarsherlock:$ActionBarSherlockVersion@aar"

    // Android-ViewPagerIndicator
    compile "com.viewpagerindicator:library:$ViewpagerIndicatorVersion@aar"

    // Picasso
    compile "com.squareup.picasso:picasso:$PicassoVersion"

    // Robospice
    compile "com.octo.android.robospice:robospice:$RoboSpiceVersion"

    // StickyList headers
    compile "se.emilsjolander:stickylistheaders:$StickyListHeaders"

    // Facebook sdk
    compile 'fr.avianey:facebook-android-api:+@aar'

    // android annotations
    compile "org.androidannotations:androidannotations-api:$AAVersion"
    apt "org.androidannotations:androidannotations:$AAVersion"

    compile 'com.sothree.slidinguppanel:library:+'

    // Tests part
    androidTestCompile "com.jayway.android.robotium:robotium-solo:$RobotiumVersion"
    compile "com.jayway.android.robotium:robotium-solo:$RobotiumVersion"
}

你知道我该如何解决这个问题吗?

谢谢


请分享您的构建文件和完整的错误堆栈跟踪。 - Scott Barta
这是来自Android Studio的完整堆栈跟踪,Gradle插件0.13.+和0.12.+之间唯一的区别是版本号。它可以在0.12.+上运行,但无法在0.13.+上运行。我不确定问题是否出现在Gradle文件中,但我将使用我的实际构建Gradle文件更新我的问题。 - mrroboaat
你的 gradle-wrapper 不应该是 distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip 吗? - nhaarman
是的。请看我的评论,我使用的是带有Android Gradle插件0.13的gradle-2.1-all.zip,但是对于Android Gradle插件0.12(可用的版本),我必须使用gradle-1.10-all.zip。 - mrroboaat
请提供您的模块级别构建文件。 - Scott Barta
@ScottBarta 我猜你是在谈论第二个 build.gradle 文件?如果是的话,请看我的 EDIT2。 - mrroboaat
1个回答

15

android-apt 1.3似乎与Android Gradle插件v0.13不兼容。请使用android-apt 1.4代替:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

谢谢!你是救命恩人! - Makerhack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接