我在过去的几个月里一直在学习Android,并且一直使用Eclipse Juno作为我的IDE.
我正在尝试迁移到Android-Studio,并想知道我如何"从构建路径中排除"我尚未完成的一些类?
在Eclipse中,它是直接向右键单击.我在Studio中找不到任何引用.
我的应用程序有两种产品风格:
productFlavors {
europe {
buildConfigField("Boolean", "BEACON_ENABLED", "false")
}
usa {
buildConfigField("Boolean", "BEACON_ENABLED", "true")
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想在任务中获取当前的flavor名称(我在Android Studio中选择的名称)以更改路径:
task copyJar(type: Copy) {
from('build/intermediates/bundles/' + FLAVOR_NAME + '/release/')
}
Run Code Online (Sandbox Code Playgroud)
如何在Gradle中获得FLAVOR_NAME?
谢谢
请问,您知道在合并多个资产文件夹之前或合并期间如何从Android项目资产文件夹中排除某些文件的方法吗?
例如:
android {
sourceSets {
main {
assets.srcDirs = [fileTree(dir: 'assets1', exclude: 'myfile.txt'), 'assets2'] // does not work
assets.exclude 'assets1/myfile.txt' // does not work
assets.exclude '**/*.txt' // does not work
assets.exclude '*.txt' // does not work
}
}
packagingOptions {
exclude 'assets1/myfile.txt' // does not work
exclude '**/*.txt' // does not work
exclude '*.txt' // does not work either
}
aaptOptions {
ignoreAssetsPattern "myfile.txt" // does not work
}
}
Run Code Online (Sandbox Code Playgroud) 我已经克隆了github存储库,因为我想研究代码,但是当我尝试在Android Studio中构建它时,遇到了一些麻烦。添加google maven存储库(按照Android Studio的提示)并更新Gradle插件版本和成绩版本(分别为3.5.2和5.4.1)后,由于以下错误,构建失败:
原因:重复输入:META-INF / MANIFEST.MF
更具体地说:
引起原因:java.util.zip.ZipException:重复项:META-INF / MANIFEST.MF
这是我的项目级别的build.gradle文件:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com'
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的模块build.gradle文件(尝试任何操作之前):
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.thelittlenaruto.supportdesignexample"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes { …Run Code Online (Sandbox Code Playgroud) 我有src/main/resources/certs/test一个外部库需要的开发相关目录.这有一些生产版本不需要的证书文件.
目前我在下面的块中排除了该目录下的所有内容build.gradle:
sourceSets {
main {
resources {
exclude '**/test/*'
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样做很好,但留下了丑陋的空目录test.我有什么选择在最后的战争中不包括这个目录?
我试过排除'**/test',但它根本不起作用.
我使用war插件和Gradle 1.2
我的 Android 应用程序当前包含 170 个不同字符串的 18 个翻译,范围从 6/170 翻译到 170/170 翻译。
对于非英语应用程序用户来说,如果实际上只有 3% 的字符串被真正翻译,那么告诉该应用程序以 xx 语言提供是没有意义的。
我的问题:是否可以告诉 android-studio 或 gradle 我不希望语言 xx 包含在最终的 apk 中而不删除源树中的现有翻译?
我想排除翻译率低于 65% 的语言
也可以看看