我面临一个问题,我正在使用向量绘图和动画矢量绘图。到目前为止,在API级别的15+上,一切都很顺利。
今天,当我准备发布一个更新时,我构建了一个签名的APK,并做了最后一轮的测试,令人惊讶的是,所有的矢量动画都停止了工作。我只看到普通的矢量图像,但没有应用到它的路径上的矢量动画。它只在安卓M平台上工作。它不工作任何其他平台,甚至棒棒糖。他们都在开发工具上工作得很好,我真的不明白,我也找不到可能的原因。我脑海中唯一想到的就是proguard-rules.pro文件,因为这是区分签名版和dev版本的唯一区别。有人能帮我解决这个问题吗?我现在真的被这个版本困住了,在任何地方都找不到解决方案。
我对向量使用了this方法(这是我自己的答案)。对于矢量动画,我只写了这样的
<animated-vector
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:drawable="@drawable/vector_img"
tools:ignore="NewApi">
<target
android:animation="@anim/slide_up"
android:name="slab_one"/>
</animated-vector>我在用gradle 1.5.0。这就是我的build.gradle文件的相关部分-
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
multiDexEnabled true
generatedDensities = []
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
dexOptions {
javaMaxHeapSize "4g"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:support-vector-drawable:23.4.0'
compile 'com.android.support:animated-vector-drawable:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
}会很感激你的帮助。提前谢谢!
发布于 2016-09-02 11:16:10
找到了解决办法。只需向proguard添加一行即可。
-keep class android.support.graphics.drawable.** { *; }因此,我正确地猜测,签署APK的问题与proguard有关。我现在也可以看到矢量动画在前棒棒糖装置上播放。
https://stackoverflow.com/questions/39278670
复制相似问题