0

ベクトル型ドローアブルとアニメーション化されたベクトル型ドローアブルを使用しているという問題に直面しています。API レベル 15 以降では、これまでのところすべてが正常にスムーズに動作しています。

今日、アップデートをリリースする準備をしていたときに、署名付き APK をビルドし、最後のテストを行ったところ、驚くべきことにすべてのベクター アニメーションが機能しなくなりました。単純なベクター画像が表示されますが、そのパスに適用したベクター アニメーションは表示されません。Android Mプラットフォームでのみ動作します。Lollipopでさえ、他のプラットフォームでは動作しません。それらはすべて開発ビルドで正常に動作していましたが、本当に理解できず、考えられる理由を見つけることができません。私の頭に浮かぶのはproguard-rules.proファイルだけです。これは、APKの署名済みバージョンと開発バージョンを区別する唯一のものだからです。. 誰かが光を投げて、この問題を手伝ってくれませんか。私は今、リリースに本当に行き詰まっており、どこにも解決策を見つけることができません.

私はこのアプローチをベクトルで使用しました(私自身の答えです)。ベクター アニメーションの場合は、次のように簡単に記述しました。

 <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'
}

あなたの助けを本当に感謝します. 前もって感謝します !

4

1 に答える 1

2

解決策を見つけました。に行を追加するだけでしたproguard

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

したがって、Signed APK の問題はproguard. ロリポップ以前のデバイスでもベクター アニメーションを再生できるようになりました。

于 2016-09-02T11:16:10.413 に答える