不使用buildToolsVersion 19.1.0生成的Android注释

时间:2014-07-01 20:30:24

标签: android gradle android-gradle build.gradle android-annotations

随着Android Studio的最后更新,我被迫进入gradle 0.11('com.android.tools.build:grad:0.11。+'),我还将buildToolsVersion更改为“19.1.0”。

另外,使用新的gradle和构建工具我以前的Android Annotations不起作用所以我去了官方的AA网站,我把我的gradle文件推到了这个:

apply plugin: 'android'
apply plugin: 'android-apt'

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

可悲的是,它不会产生任何AA类。

我认为我的问题可能是我使用了两种口味:付费和免费。

这是我的完整gradle文件:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }
    }
    dependencies {
        // replace with the current version of the Android plugin
        classpath 'com.android.tools.build:gradle:0.11.+'

        // the latest version of the android-apt plugin
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.+'

        // Crashlitics
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}

repositories {
    mavenCentral()
    mavenLocal()
    maven { url 'http://download.crashlytics.com/maven' }
}

apply plugin: 'android'
apply plugin: 'crashlytics'
apply plugin: 'android-apt'

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

def AAVersion = '3.0.1'
def ORMLiteVersion = '4.46'
def mainPackage = 'com.xxx'
def paidPackage = mainPackage + '.paid'
def freePackage = mainPackage + '.free'

dependencies {
    [...]

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

    [...]
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 4
        versionName "1.4.0-scroll-fast"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }

    signingConfigs {
        release {
            storeFile file("../../transport.keystore.jks")
            storePassword releaseStorePassword
            keyAlias releaseKeyAlias
            keyPassword releaseKeyPassword
        }


        debug {
            storeFile file("../../debug.keystore")
        }
    }

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

            buildConfigField "java.lang.String", "DATABASE_NAME", "\"transporter\""
            buildConfigField "int", "DATABASE_VERSION", "1"

            buildConfigField "java.lang.String", "PAID_PACKAGE_NAME", "\"$paidPackage\""
            buildConfigField "java.lang.String", "FREE_PACKAGE_NAME", "\"$freePackage\""

            signingConfig signingConfigs.release
        }

        debug.initWith(buildTypes.release)
        debug {
            debuggable true
            runProguard false
            signingConfig signingConfigs.debug
        }
    }

    productFlavors {
        free {
            applicationId freePackage
           [...]
        }

        paid {
            applicationId paidPackage
            [...]
        }
    }
}

@Edit

感谢Alex(添加了android {useOldManifestMerger true})AA开始处理但仍然无效:

22:39:08.449 [Daemon Thread 15] INFO  o.a.AndroidAnnotationProcessor:85 - Initialize AndroidAnnotations 3.0.1 with options {androidManifestFile=D:\Programowanie\GitProjects\transport\android-Transport\transport\build\intermediates\manifests\paid\release\AndroidManifest.xml, resourcePackageName=null}
22:39:08.495 [Daemon Thread 15] INFO  o.a.AndroidAnnotationProcessor:109 - Start processing for 14 annotations on 46 elements
22:39:08.506 [Daemon Thread 15] DEBUG o.a.h.AndroidManifestFinder:98 - AndroidManifest.xml file found with specified path: D:\Programowanie\GitProjects\transport\android-Transport\transport\build\intermediates\manifests\paid\release\AndroidManifest.xml
22:39:08.510 [Daemon Thread 15] INFO  o.a.AndroidAnnotationProcessor:172 - AndroidManifest.xml found: AndroidManifest [applicationPackage=pl.grzeslowski.transport.paid, componentQualifiedNames=[pl.grzeslowski.transport.activities.MainActivity_, pl.grzeslowski.transport.activities.ResultActivity_, pl.grzeslowski.transport.activities.InfoActivity_, pl.grzeslowski.transport.activities.InfoActivity], permissionQualifiedNames=[android.permission.INTERNET, android.permission.ACCESS_NETWORK_STATE], applicationClassName=pl.grzeslowski.transport.TransporterApplication_, libraryProject=false, debugabble=false, minSdkVersion=9, maxSdkVersion=-1, targetSdkVersion=19]
22:39:08.512 [Daemon Thread 15] ERROR o.a.r.ProjectRClassFinder:46 - The generated null.R class cannot be found
22:39:08.513 [Daemon Thread 15] INFO  o.a.r.AndroidRClassFinder:44 - Found Android class: android.R
22:39:08.521 [Daemon Thread 15] INFO  o.a.p.TimeStats:81 - Time measurements: [Whole Processing = 26 ms], [Extract Annotations = 9 ms], [Extract Manifest = 5 ms], 
22:39:08.522 [Daemon Thread 15] INFO  o.a.AndroidAnnotationProcessor:123 - Finish processing

1 个答案:

答案 0 :(得分:1)