相关疑难解决方法(0)

如何在android studio中用gradle替换buildvariant的字符串?

我的项目有两种:

flavor1 -> packagename: com.example.flavor1 
flavor2 -> packagename: com.example.flavor2
Run Code Online (Sandbox Code Playgroud)

现在我想构建一个flavor1和flavor2的构造变量.buildvariant的唯一区别是另一个packagename.

我的项目使用MapFragments并且只有一个Manifest - 所以我将MAPS_RECEIVE的权限名称放在我各自风格的字符串资源文件中.

问题是:如何替换buildvariant的字符串资源?

我尝试了以下方法(在这篇文章中描述):

buildTypes{
    flavor1Rev{
        packageName 'com.example.rev.flavor1'
        filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: ['package_permission' : 'com.example.rev.flavor1.permission.MAPS_RECEIVE'])
    }
}
Run Code Online (Sandbox Code Playgroud)

但是使用这个我得到了这个错误:

找不到参数[{tokens = {package_permission = com.example.rev.flavor1.permission.MAPS_RECEIVE}}的方法filter(),BuildTypeDsl_D ecorated {name = ReplaceTokens,debuggable = false,jniDebugBuild = false,renderscript DebugBuild = false, BuildTypeD上的renderscriptOptimLevel = 3,packageNameSuffix = null,versionNameS uffix = null,runProguard = false,zipAlign = true,signingConfig = null}] sl_Decorated {name = buderusFinal,debuggable = false,jniDebugBuild = false,renderscr iptDebugBuild = false,renderscriptOptimLevel = 3 ,packageNameSuffix = null,versionNa meSuffix = null,runProguard = false,zipAlign …

android gradle android-studio build.gradle

25
推荐指数
2
解决办法
3万
查看次数

无法在com.android.build.gradle.internal.api.ApplicationVariantImpl上找到属性'processManifest'

我目前正在尝试将Android Studio更新为1.0.0-RC.这似乎需要gradle Android插件1.0.0-rc1.更新后,我开始出现以下错误:

`Could not find property 'processManifest' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@b9da89c.`
Run Code Online (Sandbox Code Playgroud)

通过一些挖掘,似乎这processManifest是在0.14.3版本中删除的已弃用属性之一.知道新的属性名称是什么?相同的用户指南尚未针对新版本进行更新,因此我找不到任何相关文档.

编辑:这是需要该属性的代码.我使用它将一些构建时值注入清单:

applicationVariants.all { variant ->
        variant.processManifest << {
            def manifestOutFile = variant.processManifest.manifestOutputFile
            def newFileContents = manifestOutFile.getText('UTF-8')
                    .replace("{GOOGLE_MAPS_KEY}", variant.buildType.ext.google_maps_key)
            manifestOutFile.write(newFileContents, 'UTF-8')
        }
    }
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio build.gradle android-gradle-plugin

19
推荐指数
4
解决办法
1万
查看次数