2016-09-01 58 views
0

我正面臨着一個問題,那就是我使用的矢量繪圖與動畫矢量繪圖一起使用。在API級別15+以上,所有內容都一直在正常工作。Android - 已簽名的APK - 動畫矢量不起作用

今天,當我準備發佈更新時,我構建了一個簽名APK,並進行了最後一輪測試,令人驚訝的是所有矢量動畫都停止工作。我只看到簡單的矢量圖像,但沒有應用於其路徑的矢量動畫。 它只能在Android M平臺上工作。它不工作任何其他平臺,甚至沒有棒棒糖。 他們都在開發工作很好,我真的不明白,我無法找到可能的原因。我唯一想到的是proguard-rules.pro文件,因爲這是唯一區分APK的簽名版本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' 
} 

真的很感謝您的幫助。提前致謝 !

+0

如果它適用於您的開發建設而不是在你的發行版,那麼我建議你檢查下''buildTypes' release'塊(假設你有一個)在你的'gradle'文件中,它可能會阻塞某些資源。我有一個類似的問題,外部庫不包含在發佈版本中。 – Pztar

+0

Hi @Pztar:我的'release'模塊並不特別,可能會阻塞資源。它看起來像這樣 - buildTypes { 發佈{ minifyEnabled真正 proguardFiles getDefaultProguardFile( 'proguard的-android.txt'), 'proguard-rules.pro' }} 我堅信它得做proguard文件。是否有任何必須特別添加的規則來支持「動畫向量可繪製」? – Shubhral

回答

1

找到解決方案。只需要添加一行到proguard

-keep class android.support.graphics.drawable.** { *; } 

所以我是正確的猜測與簽名APK的問題與proguard。我現在能夠看到在棒棒糖設備上播放的矢量動畫。

您可以檢查我的應用程序上play store以及:)

+0

不適合我。尼斯廣告順便說一句:) –

+0

哈哈,不打算這樣做@保羅。只是想分享一個證據,說明這個解決方案如何幫助我在製作矢量繪圖工具時使用前棒棒糖設備:) – Shubhral