我希望能够访问build.gradle属性,这样我就可以在我的应用程序中自动化一些流程。
这就是我目前的结构:
RootProject/build.gradle
buildscript {
ext {
buildTools = "25.0.2"
minSdk = 16
compileSdk = 23
targetSdk = 23
versions = [supportLib : '25.0.0',
multidex : '1.0.1',
playServices : '10.0.1']
libs = [appcompat : "com.android.support:appcompat-v7:$versions.supportLib",
design : "com.android.support:design:$versions.supportLib"]
.... Other libraries and setup....
}
}
rootProject/app/build。格拉德尔
...
dependencies {
// Support libraries
compile libs.appcompat
compile libs.design
.....
}
我想访问Java和build。gradle端是属性版本和libs变量。我怎样才能做到这一点?
使用渐变。属性文件来定义您的值,然后您可以在gradle项目配置中使用此值。
然后,为了能够访问Java android代码中的这些值,请使用“buildConfigField”定义。
格拉德尔。性质
values=value1,value2
建筑格拉德尔
def String[] valuesArray = values.split(',')
android {
defaultConfig {
buildConfigField "String[]", "VALUES_ARRAY", "{" +
"\"" + valuesArray[0] + "\"," +
"\"" + valuesArray[1] + "\"" +
"}"
}
}
在java文件
BuildConfig.VALUES_ARRAY
您可以这样做,但是在构建脚本块之外
ext {
// Version
supportVersion = '26.0.0'
// Support Libraries dependencies
supportDependencies = [
design: "com.android.support:design:${supportVersion}",
recyclerView: "com.android.support:recyclerview-v7:${supportVersion}",
cardView: "com.android.support:cardview-v7:${supportVersion}",
appCompat: "com.android.support:appcompat-v7:${supportVersion}",
supportAnnotation: "com.android.support:support-annotations:${supportVersion}",
]
firebaseVersion = '11.0.2';
firebaseDependencies = [
core: "com.google.firebase:firebase-core:${firebaseVersion}",
database: "com.google.firebase:firebase-database:${firebaseVersion}",
storage: "com.google.firebase:firebase-storage:${firebaseVersion}",
crash: "com.google.firebase:firebase-crash:${firebaseVersion}",
auth: "com.google.firebase:firebase-auth:${firebaseVersion}",
messaging: "com.google.firebase:firebase-messaging:${firebaseVersion}",
remoteConfig: "com.google.firebase:firebase-config:${firebaseVersion}",
invites: "com.google.firebase:firebase-invites:${firebaseVersion}",
adMod: "com.google.firebase:firebase-ads:${firebaseVersion}",
appIndexing: "com.google.android.gms:play-services-appindexing:${firebaseVersion}",
];
}
// Module build file
dependencies {
// ...
compile supportDependencies.appCompat
compile supportDependencies.design
compile firebaseDependencies.crash
}
在java中,您无法访问构建。gradle
文件,因为它们仅在构建时使用。您可以在BuildConfig
文件中输入相同的值。在这个文件中有一些预构建的值,比如BuildConfig。VERSION_NAME
或您可以使用一些自定义键,如:
android {
...
defaultConfig {
...
// defining the build date
buildConfigField "long", "BUILD_DATE", System.currentTimeMillis() + "L"
// define whether this build is a production build
buildConfigField "boolean", "IS_PRODUCTION", "false"
// note that to define a string you need to escape it
buildConfigField "String", "API_KEY", "\"my_api_key\""
}
}
自动生成的
public class BuildConfig {
// ... other generated fields ...
public static final long BUILD_DATE = 1469504547000L;
public static final boolean IS_PRODUCTION = false;
public static final String API_KEY = "my_api_key";
}
例如。 可以更改为 ...什么的。 null
我升级了 Eclipse ADT 插件,并在一个项目上执行了导出,以使用 Gradle,然后将其导入到最新的 Android Studio 0.3.2.中,选择“build.gradle”,就像他们希望你的那样。 我下载了最新的Gradle 1.9,但我收到的错误基本上是“需要Gradle 1.6,找到1.9”。 我让构建达到了抱怨构建中的“依赖项”类路径的地步。 那么,我怎样才能找到它满意的类路
问题内容: 我在Ubuntu上使用Android Studio。我启动了Android Studio,创建了一个“新项目”,并从开始。它引发了以下错误: 它还显示了一个带有圆圈的PNG文件和一个透明背景,文件名为: 在我再次尝试运行该应用程序之后,我现在有2个错误,而不是一个: 您能否帮助我解决问题? 问题答案: Android尚未为64位ubuntu构建SDK,从错误中我可以说您正在64位OS上
我已经将我的Android Studio版本更新到了0.2.1,从那以后,当我打开一个干净的新项目并试图构建+运行它时,我得到了以下错误: 异常构建进程终止:错误:无法找到或加载主类文件
在我的模块构建脚本(build.gradle)中,我可以设置依赖项: Gradle示例8.2 我还可以在构建脚本中使用方法并设置依赖项: 如果构建脚本需要使用外部库,可以将它们添加到构建脚本本身的脚本类路径中。您可以使用buildscript()方法来实现这一点,并传入一个声明构建脚本类路径的闭包。 Gradle示例59.6 我的问题,这些是一样的吗?这两种为构建脚本设置依赖关系的方式有什么区别吗
我安装了Android Studio 2.2。2使用Debian Jessie上的必要软件包并检查更新 当gradle构建开始时,我有2个错误: 错误:java.lang.运行时间异常:CrunchingCruncherlauncher.png失败,请参阅日志错误:任务执行失败:应用程序:mergeDebugResources。 我在这个论坛上寻找答案,我试图通过编辑/res/drawable文件