【问题标题】:Having problems using the Android Tools Project Build System使用 Android 工具项目构建系统时遇到问题
【发布时间】:2012-12-06 07:51:27
【问题描述】:

所以我一直在尝试使用 http://tools.android.com/tech-docs/new-build-system 自动构建 Android。

我仍然不清楚如何准确地使用构建系统,所以如果有人对此有经验,或者一般的 Gradle 可能能够为我回答以下问题。

将此构建文件用作参考。

//
// A basic Android application that follows all the conventions
//
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.2'
    }
}
apply plugin: 'android'

android {
    target = "android-15"
    testBuildType = "debug"

    defaultConfig {
        versionCode = 12
        versionName = "2.0"
        minSdkVersion = 16
        targetSdkVersion = 16

        signingStoreLocation = "debug.keystore"
        signingStorePassword = "android"
        signingKeyAlias = "androiddebugkey"
        signingKeyPassword = "android"

        buildConfig "private final static boolean DEFAULT = true;", \
                    "private final static String FOO = \"foo\";"
    }

    buildTypes {
        debug {
            packageNameSuffix = ".debug"

            buildConfig "private final static boolean DEBUG2 = false;"
        }
    }

    sourceSets {

       main {}
       test {}
    }

    aaptOptions {
        noCompress "txt"
    }
}
  1. 您究竟是如何向它添加依赖项以进行构建的?使用 Gradle 的依赖项会给我带来构建错误。
  2. 您将如何创建不同的构建环境?然后从命令行运行这些?
  3. 在 main 和 test 之外的 sourceSets 有什么意义?

感谢您的帮助,我们将不胜感激除上述问题之外的任何一般指南。

【问题讨论】:

  • 另外,如果其他人可能会建议一个完全不同的 Android 构建系统,并期望它具有简单快速的学习曲线,那就太好了。
  • Ant 并没有真正内置依赖管理或自动化测试。希望将其纳入框架。
  • 您遇到了什么错误?
  • 我不确定您是否可以使用空块来配置 sourceSets.main 和 sourceSets.test。如果您使用的是默认文件夹结构(src/main/java 和 src/test/java),我会删除它们,看看是否有帮助。

标签: android gradle


【解决方案1】:

1- 依赖是通过常规的 gradle 方式添加的,例如:

依赖{ 编译'com.google.android:support-v4:r7' }

更多信息:http://gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html

2- 不知道你的意思。如果您指的是不同的构建变体,则必须创建产品风味(请参阅http://tools.android.com/tech-docs/new-build-system/using-the-new-build-system)。

从命令行构建,您只需运行“gradle assemble”。请参阅上面的文档。

3- SourceSets 用于配置默认配置(main/test)、flavors 和构建类型的源集。与 Java gradle 构建不同,您不能只添加新的源集并让它们自动编译。 这就是为什么它位于 android 命名空间 (android.sourcesets) 中,而不是像默认 Java 插件提供的 sourceSets 对象那样位于顶层。

【讨论】:

  • 到目前为止,我已经搁置了使用该工具并正在探索使用 android maven 插件,因为我发现指南超级缺乏。来自非运营背景,并使用 Eclipse 或 Intellij 构建我的 Android 应用程序,我发现现在这太难理解了。
猜你喜欢
  • 1970-01-01
  • 2014-06-12
  • 2014-07-01
  • 1970-01-01
  • 2018-01-02
  • 2015-03-30
  • 2018-09-07
  • 2021-06-26
  • 2021-06-29
相关资源
最近更新 更多