小编Mad*_*ter的帖子

让Android Studio,Gradle和Android Annotations协同工作

既然我决定在Android Studio中使用Android Annotations,我想通过Gradle实现它.经过一些深思熟虑的研究后,我发现有更旧的方法可以通过Gradle实现Android Annotations,具体取决于android studio,gradle或android注释的版本.我来到这个有用的教程 - > http://www.jayway.com/2014/02/21/androidannotations-setup-in-android-studio/,并试图实现这一点,首先,使用新的'android- L'作为目标SDK喜欢

targetSDKversion"android-L"+ compileSdkVersion 20 + buildToolsVersion"20.0.0"

直到我试着用它

targetSDKversion 20 + compileSdkVersion 20 + buildToolsVersion"20.0.0"

并且

targetSDKversion 19 + compileSdkVersion 19 + buildToolsVersion"19.1.0".

每次我得到2个警告,我的java类似乎没有得到预编译.即使它似乎预先创建了build/generated/source/apt目录.但没有我的MainActivity预处理类 - > MainActivity_

我总是得到以下警告:

注意:将日志文件解析为D:\ AndroidProjects\GradleTest\app\build\generated\source\apt\androidannotations.log注意:使用选项> {androidManifestFile = D:\ AndroidProjects\GradleTest\app\build \初始化AndroidAnnotations 3.0.1 intermediates\manifests\debug\AndroidManifest.xml,resourcePackageName = at.gradle.defuex.gradletest}

警告:类型'[dummy1407928544078]'的未闭合文件; 这些类型不会进行注释处理

警告:任何处理器都无法识别以下选项:'[androidManifestFile,resourcePackageName]'

我的build.gradle文件如下所示:

buildscript{
repositories{
    mavenCentral()
}

dependencies{
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.3'
    }
}


repositories{
    mavenCentral()
}

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

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "at.gradle.defuex.gradletest"
        minSdkVersion …
Run Code Online (Sandbox Code Playgroud)

android gradle android-annotations android-studio android-gradle-plugin

7
推荐指数
1
解决办法
1927
查看次数

Android Studio Gradle第一步

有些人可能已经看过Android Studio Gradle i/o,Xavier Ducrohet在他的快速演讲中提到了如何使用android gradle构建系统.我的问题是,文档和演示文稿缺乏快速启动的信息.或者至少对我而言.在我的下面的代码中,我试图解决gradle android插件系统的使用,我确定我有一些错误的步骤,一些正确.(我没有经常使用蚂蚁或maven)

也许我会一步一步地完成它到目前为止我所做的事情.

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16

        signingStoreLocation = "debug.keystore"
        signingStorePassword = "***************"
        signingKeyAlias = "***************"
        signingKeyPassword = "**************"
    }
Run Code Online (Sandbox Code Playgroud)

首先我配置调试版本的默认设置(或使用默认设置的每个版本..这意味着没有构建类型或风格?)

sourceSets:

    sourceSets {

        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['com.project.maingradle', 'com.otherproject.changedsourcefilesforthisproject']
            res.srcDirs = ['res', 'resfromotherprojectusingpartsofsamecode']
            assets.srcDirs = ['assets']
        }
    }
Run Code Online (Sandbox Code Playgroud)

在这一步中,我定义了sourceSets.这是我第一个问题.如果我有相同的代码我想用于两个项目,是否可能/或应该如何定义更多的源集,如 - >

    sourceSets {

        main {...}
        srcsetforanotherproject {...}
    }
Run Code Online (Sandbox Code Playgroud)

...取决于底层的src文件夹?或者,是否应该像我在第一个sourceSets声明中那样定义sourceSets,通过定义一组不同的,例如res文件夹,如Xavier Ducrohet所提到的?(还不清楚我是否只能以这种方式对res文件夹执行此操作,或者对java src代码文件夹执行此操作,例如java.srcDirs = ['com.project.maingradle','com.otherproject.changedsourcefilesforthisproject'].

signingConfigs:

    signingConfigs {
        debugRelease {
            storeFile file("debug.keystore")
        }

        release {
            storeFile …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio

6
推荐指数
1
解决办法
3958
查看次数