我将几个eclipse项目导入到Android Studio(v1.1)。
在最初的Eclipse环境中,他们使用Proguard作为发布模式。
在Android Studio环境中,这在构建中被转换为以下内容。gradle
脚本(由导入,而不是由我):
buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard.cfg'
}
}
我理解这意味着“在release
build中,使用Proguard.cfg启用Proguard的minify”。
然而,问题是缩小似乎也发生在非发布构建(即调试)中!
这怎么可能?
调试生成的minifyEnabled默认值是多少?
更新1:感谢下面的答案,我现在知道默认值是false
。这意味着其他东西正在构建调试构建中缩小的各种模块。
我正在发布整个版本。gradle用于调试构建中缩小的其中一个模块:
apply plugin: 'com.android.library'
android {
compileSdkVersion 8
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 8
}
buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard.cfg'
}
}
}
项目本身(即顶层)的整个build.gradle
是:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
我在这里找不到任何可以解释在调试构建中强制缩小的东西。
更新2:怀疑应用程序的构建(debug
)和它所依赖的模块(release
?)不匹配,我还检查了左面板上的Build Variant视图。所有这些都清楚地显示了调试。
更新3:我似乎在Android Gradle中遇到了一个漏洞/限制?
当应用程序以debug
模式构建时,我真的需要在debug
模式下构建的所有模块。
有什么办法可以解决这个问题吗?
调试生成的minifyEnabled默认值是多少?
对于所有构建类型,mini fyEnable
的默认值为false
。参考。
然而,问题是缩小似乎也发生在非发布构建(即调试)中!
这怎么可能?
您的调试构建得到了proguard处理,可能是通过其他定义,或者您正在使用的外部构建脚本。
在更新的问题中,您有一个库项目和一个应用程序项目,它使用一个缩小的库,甚至用于调试构建。这是一个“特征”。要找到解决方案,请考虑问题报告中也提到的以下内容:
通过将以下内容添加到库项目的构建中,来构建库项目的所有变体。格雷德尔
:
android {
publishNonDefault true
}
在应用程序项目中,选择构建类型特定的依赖项
dependencies {
releaseCompile project(path: ':theotherproject', configuration: 'release')
debugCompile project(path: ':theotherproject', configuration: 'debug')
}
对于所有构建类型,minifyEnabled
的默认值是false
,正如@laalto所回答的那样。
然而,目前(截至2015年4月24日),多模块项目并非如此,其中一些模块(包括应用程序)依赖于其他模块。这是由于bug#52962导致生成类型不会传播到库中——它们总是作为发行版生成。
我们非常欢迎您提出解决此漏洞的建议或其修复通知。
问题内容: UTF-8是Java中的默认编码吗? 如果没有,我怎么知道默认使用哪种编码? 问题答案: JVM的默认字符集是运行它的系统的默认字符集。对此没有特定的值,并且通常不应将默认编码视为任何特定的值。 可以在运行时通过对其进行访问,尽管这对你有用,但实际上你应该始终在明确指定编码的情况下这样做。
问题内容: 现在,我正在用自己的语言编写一个小的Java应用程序,其中只有几个maven pom.xml文件。我想使我所有的maven软件包都可以使用jdk 1.6进行编译,而如果没有在每个POM上手动设置它的话,我将找不到一个很好的方法-我讨厌复制粘贴 在我生成的每个pom.xml文件中。 有没有更简单的方法来解决此问题? 问题答案: 创建一个具有所需的编译器设置(以及任何其他默认设置)的仅po
问题内容: 一个Kibana新手想知道如何以编程方式设置默认的索引模式,而不是像在https://www.elastic.co/guide/en/上提到的那样在第一次查看Kibana UI时通过Web浏览器在Kibana UI上设置它。kibana / current / setup.html 问题答案: Elasticsearch将所有Kibana元数据信息存储在索引下。Kibana配置(例如和
如果我们打开swagger editor网站https://editor.swagger.io/,它有一个默认的swagger示例。前几行是 一般来说,我们知道有两种类型的大摇大摆的文件。YAML和JSON。当然,默认的不是JSON。默认值与YAML非常相似,但事实并非如此。因为在菜单中,我们可以选择“转换为YAML”,它将转换为
问题内容: 如何通过编程正确设置JVM(1.5.x)使用的默认字符编码? 我读过,这-曾经是使用旧JVM的方法。由于没有理由,我没有那么奢侈。 我试过了: 并且该属性被设置,但似乎不会导致下面的最终调用使用UTF8: 问题答案: 不幸的是,必须在JVM启动时指定该属性。通过输入你的主要方法时,编码中使用的字符由和默认的构造函数,并已被永久缓存。 正如指出的那样,在这种特殊情况下, 可以使用环境
使用axios,我尝试为所有请求设置默认标头身份验证令牌。但默认情况下它没有被发现,并且对于任何其他api调用,“授权”没有在标头中设置。 这是一个常用文件 登录后,我像这样设置标题 但是当我调用任何其他API标头进行授权时,CountryApi.js所在的位置没有设置 Country.js是这个