相关疑难解决方法(0)

是否可以在Gradle中声明一个可用于Java的变量?

是否可以在Gradle中声明一个可用于Java的变量?基本上我想在build.gradle中声明一些变量,然后在构建时获取它(显然).就像C/C++中的预处理器宏一样......

宣言的一个例子就是那样......:

android {
    debug {
        A_VAR_RETRIEVABLE_IN_JAVA = 42
    }
    release {
        A_VAR_RETRIEVABLE_IN_JAVA = 42+52
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做那样的事情?

java android gradle android-gradle-plugin

392
推荐指数
5
解决办法
13万
查看次数

签名APK,而不在build.gradle中放置密钥库信息

我正在尝试设置签名过程,以便密钥库密码和密钥密码不会存储在项目的build.gradle文件中.

目前我在以下方面有build.gradle:

android {
    ...
    signingConfigs {
        release {
            storeFile file("my.keystore")
            storePassword "store_password"
            keyAlias "my_key_alias"
            keyPassword "key_password"
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它的工作原理完全没有问题,但我不能把值的storePassword,而且keyPassword在我的仓库.我宁愿不把storeFilekeyAlias有两种.

有没有办法改变build.gradle它,以便它从某些外部源获取密码(如仅存在于我的计算机上的文件)?

当然,更改的内容build.gradle应该可以在任何其他计算机上使用(即使计算机无法访问密码).

我正在使用Android Studio和Mac OS X Maverics,如果它确实重要.

android code-signing gradle android-studio

138
推荐指数
10
解决办法
6万
查看次数

Gradle - 包含属性文件

我如何在Gradle中包含属性文件?

例如在Ant中,我可以执行以下操作:

<property file="${basedir}/build.properties" />
Run Code Online (Sandbox Code Playgroud)

gradle

50
推荐指数
5
解决办法
7万
查看次数

Android Gradle Plugin 1.1.0 - 找不到getNdkFolder(),有什么替代品吗?

我刚刚从1.0.0更新了Android Gradle插件到1.1.0,我收到了这个错误:

没有方法签名:com.android.build.gradle.LibraryPlugin.getNdkFolder()适用于参数类型:()值:[]

我试图找到gradle插件1.0.0到1.1.0的差异,但无法在网上找到任何地方.

似乎getNdkFolder方法已被更改或删除.

有替代品吗?或者任何其他方式获得NdkFolder?

我正在使用这样的方法,

def ndkDir = project.plugins.findPlugin('com.android.library').getNdkFolder()

我还针对Android问题跟踪器中的工具团队提出了问题:https://code.google.com/p/android/issues/detail? id = 152810

谢谢 !

android android-ndk android-build android-studio android-gradle-plugin

10
推荐指数
2
解决办法
7622
查看次数

Android - 从github中排除api密钥,在代码中存储api密钥的位置?

我想知道在Android工作室中存储api密钥的最佳方法是什么.我想使用gitignore从github中排除这个文件.

我看到有些人在HOME目录中使用gradle.properties,但是api特定于我的应用程序.

我还注意到新的android工作室项目中有一个gradle.properties,但这可能包含我可能不想排除的其他内容.

谁知道最好的方法呢?

因此该文件将在本地可用,我的项目将在运行时读取它,但我"可能"gitignore这个文件所以我不会提交它所以我不会暴露我的api密钥.

android android-gradle-plugin

9
推荐指数
1
解决办法
2211
查看次数

Android 从 local.properties 读取

我的项目根目录中有 local.properties 文件。

sdk.dir=C\:\\Users\\vucet\\AppData\\Local\\Android\\Sdk
versionName='7.0'
Run Code Online (Sandbox Code Playgroud)

并在 app 模块中的 build gradle 中,我试图以这种方式获取 versionName

Properties properties = new Properties()
if (project.rootProject.file('local.properties').exists()) {
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
}

def getVerCode = { ->
    def code = project.hasProperty("versionCode") ? project.versionCode.toInteger() : 1000
    return code
}

def getVerName = { ->
    def name = project.hasProperty("versionName") ? project.versionName.toString() : "5.0"
    return name
}
Run Code Online (Sandbox Code Playgroud)

但每次我得到 5.0 值。请任何人都可以帮助我吗?

android gradle build.gradle android-gradle-plugin

5
推荐指数
2
解决办法
6639
查看次数