将Android Gradle插件版本0.7.3与Gradle 1.9一起使用build / classes / {buildType} / META-INF /的所有内容都从打包的.apk中排除。
请参阅:https://code.google.com/p/android/issues/detail?id=59658 com.android.sdklib.build.ApkBuilder有: 第959行:!folderName.equalsIgnoreCase(“META-INF”)&&
所以为了纠正这个问题,我想将所有文件移到: build / classes / {buildType} / META-INF / - >建立/类/ {buildType} / META_INF / 在打包APK之前。
要生成我的META-INF / services / *文件,我目前正在使用http://metainf-services.kohsuke.org/和... - 它可以正常工作。
dependencies {
...
compile 'org.kohsuke.metainf-services:metainf-services:1.5'
...
}
现在我需要在编译过程完成后自动复制它们,并将它们添加到类路径中,但它不起作用。
我正在使用:
android.applicationVariants.all{ variant ->
variant.javaCompile.doLast{
println "${buildDir}/classes/${variant.name}/META-INF"
copy {
from ("${buildDir}/classes/${variant.name}/META-INF/") {
include '**/*'
}
into "${buildDir}/classes/${variant.name}/META_INF/"
}
}
}
什么都没打印出来,也没有被复制。
我还测试了--info和--debug,输出中找不到“META”。
我做错了什么?有没有更好的方法来解决这个问题?
修改
使用以下命令复制文件夹 - 但不存在于.APK中: 有没有办法将其包含在APK中?
android.applicationVariants.all{ v ->
task "${v.name}CopyFiles" (type: Copy)
"${buildType.name}CopyFiles" {
def base = "${buildDir}/classes/${buildType.name}"
from "${base}/META-INF/"
into "${base}/META_INF/"
}
v.processJavaResources.dependsOn "${buildType.name}CopyFiles"
}