Gradle 插件 1.4.0-beta6 不适用于缩小和重新打包类选项
Gradle plugin 1.4.0-beta6 doesn't work with minification and repackageclasses option
插件版本:com.android.tools.build:gradle:1.4.0-beta6
构建类型配置:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
}
}
minSdkVersion 9
targetSdkVersion 23
useLibrary 'org.apache.http.legacy'
compileSdkVersion 23
buildToolsVersion '23.0.1'
由于 gradle 任务中出现异常,构建无法完成。这非常重要,因为 class 重新打包修复了带有预编译支持库源的三星设备上的许多问题。
错误:
:myHeart:transformClassesAndResourcesWithProguardForGooglePlayRelease 失败
失败:构建失败,出现异常。
出了什么问题:
任务“:myHeart:transformClassesAndResourcesWithProguardForGooglePlayRelease”执行失败。
java.io.IOException: Can't write [H:\Projekty\my-heart\myHeart\build\intermediates\transforms\CLASSES_and_RESOURCES\FULL_PROJECT\proguard\GooglePlay\release] (Can't read [H:\Projekty\my-heart\myHeart\build\intermediates\classes\GooglePlay\release] (H:\Projekty\my-heart\myHeart\build\intermediates\transforms\CLASSES_and_RESOURCES\FULL_PROJECT\proguard\GooglePlay\release\happy\hacking\con.class (The system cannot find the file specified)))
尝试:
运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。
proguard 文件:
-repackageclasses 'happy.hacking'
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }
-keep class android.support.v13.app.** { *; }
-keep interface android.support.v13.app.** { *; }
#To remove debug logs:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** w(...);
}
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
我已提交问题:https://code.google.com/p/android/issues/detail?id=190386&thanks=190386&ts=1445003690
感谢 IntelliJ Amiya,事实证明 1.4.0-beta6 有问题,但 1.4.0-beta4 工作得很好。
1.4 更新到 Android Studio 稳定发布频道。 Android Studio 1.4 的大部分工作和改进都在幕后。
@Szymon Klimaszewski 尝试使用稳定版。
什么是测试版
A version of a piece of software that is made available for testing.
根据您的要求使用 1.4.0-beta4 instead of 1.4.0-beta6
。1.4.0-beta6
有问题。
阅读这篇文章
插件版本:com.android.tools.build:gradle:1.4.0-beta6 构建类型配置:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
}
}
minSdkVersion 9
targetSdkVersion 23
useLibrary 'org.apache.http.legacy'
compileSdkVersion 23
buildToolsVersion '23.0.1'
由于 gradle 任务中出现异常,构建无法完成。这非常重要,因为 class 重新打包修复了带有预编译支持库源的三星设备上的许多问题。
错误: :myHeart:transformClassesAndResourcesWithProguardForGooglePlayRelease 失败
失败:构建失败,出现异常。
出了什么问题: 任务“:myHeart:transformClassesAndResourcesWithProguardForGooglePlayRelease”执行失败。
java.io.IOException: Can't write [H:\Projekty\my-heart\myHeart\build\intermediates\transforms\CLASSES_and_RESOURCES\FULL_PROJECT\proguard\GooglePlay\release] (Can't read [H:\Projekty\my-heart\myHeart\build\intermediates\classes\GooglePlay\release] (H:\Projekty\my-heart\myHeart\build\intermediates\transforms\CLASSES_and_RESOURCES\FULL_PROJECT\proguard\GooglePlay\release\happy\hacking\con.class (The system cannot find the file specified)))
尝试: 运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。
proguard 文件:
-repackageclasses 'happy.hacking'
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }
-keep class android.support.v13.app.** { *; }
-keep interface android.support.v13.app.** { *; }
#To remove debug logs:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** w(...);
}
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
我已提交问题:https://code.google.com/p/android/issues/detail?id=190386&thanks=190386&ts=1445003690
感谢 IntelliJ Amiya,事实证明 1.4.0-beta6 有问题,但 1.4.0-beta4 工作得很好。
1.4 更新到 Android Studio 稳定发布频道。 Android Studio 1.4 的大部分工作和改进都在幕后。
@Szymon Klimaszewski 尝试使用稳定版。
什么是测试版
A version of a piece of software that is made available for testing.
根据您的要求使用 1.4.0-beta4 instead of 1.4.0-beta6
。1.4.0-beta6
有问题。
阅读这篇文章