Rob*_*ert 8 android gradle android-studio
我想使用gradle创建一个名为"dev.properties"的属性文件.这是我的build.gradle代码:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.8.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 16
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 16
targetSdkVersion 16
}
def prop = new Properties()
def propFile = new File("dev.properties");
propFile.createNewFile();
prop.store(propFile.newWriter(), null);
buildTypes {
release {
runProguard false
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我右键单击build.gradle并选择run时,将创建该文件.但是,当我制作整个项目时,它不是创建的.怎么会?
我正在使用android studio 0.4.6和gradle 1.10.
Sco*_*rta 12
它正在创建文件,而不是您期望的位置.您的脚本正在当前工作目录中创建文件,在Android Studio中将创建该文件,该文件将在Android Studio的发行版中.有一个错误提交,使Android Studio与命令行保持一致(https://code.google.com/p/android/issues/detail?id=65552),并将工作目录放在项目根目录(好吧,假设当您发出Gradle命令时,您的工作目录就在那里设置了),但修复实际上很困难,而真正的答案是您可能永远不会隐含地依赖于工作目录,这样您就可以使您的构建尽可能无懈可击.
如果您这样做:
def propFile = new File("${project.rootDir}/dev.properties")
Run Code Online (Sandbox Code Playgroud)
它会将文件放在项目的根目录中.还有project.projectDir,这将是你的模块目录; 有关可用内容的更多详细信息,请参阅http://www.gradle.org/docs/current/dsl/org.gradle.api.Project.html.
作为旁注,您应该记住,每次评估构建文件时都会运行(因为android每次运行构建脚本时都会执行该块),这可能比您想要的更频繁.这不仅仅是建立时间; 它也是项目导入时间,也是Android Studio决定评估构建文件的任何时候,当您打开项目时以及单击" 使用Gradle文件同步项目"按钮时.
此外,您应该考虑在构建过程的哪个阶段您希望它发生:是脚本评估时间,还是您希望它在Gradle完成分析并准备好实际开始构建之后运行?您可以阅读http://www.gradle.org/docs/current/userguide/build_lifecycle.html以了解更多相关信息.
对不起,我知道当你想要获得一些东西时,很多信息都会落在你身上,但这些概念很快就会帮助你.
| 归档时间: |
|
| 查看次数: |
10027 次 |
| 最近记录: |