私はproguardに奇妙な問題がありますが、何とか私の有効な描画可能ファイルが破損しています。 proguard drawableがなくてもOKです。 proguardはxmlのドロアブルを縮小する予定ですか?Proguardが描画可能ファイルを破損しています
wide_btn_round_white.xml /描画可能:
release {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
proguard-rules.pro:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle" >
<corners android:radius="25dip" />
<padding android:bottom="10dp"/>
<padding android:top="10dp"/>
<solid android:color="@color/colorOrangeGetStarted" />
</shape>
</item>
</selector>
この
<?xml version="1.0" encoding="utf-8"?>
<x />
build.gradleようになり:
-keepattributes *Annotation*
-keepattributes Signature
-keepclassmembers class ** {
@com.squareup.otto.Subscribe public *;
@com.squareup.otto.Produce public *;
}
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
-keep class com.stripe.** { *; }
-keepclassmembers class com.myapp.services.http.** {
<fields>;
}
-keepclassmembers class com.myapp.services.ws.** {
<fields>;
}
-keepclassmembers class * extends java.lang.Enum {
<fields>;
public static **[] values();
public static ** valueOf(java.lang.String);
}
EDIT: この問題は、shrinkResources
で起こります。 style.xml
でのみ指定されたすべてのドロアブルを難読化します。私はstyle="@style/MyStyle"
を持っており、styles.xml
でボタンがあれば だから例えば:
<style name="MyStyle">
<item name="android:background">@drawable/wide_btn_round_white</item>
</style>.
wide_btn_round_white.xml
をつもりが壊れことです。しかし、ボタンに背景を直接指定すると、すべてが正常に機能します。 WikiをIによるapp/src/main/res/values/keep.xml
作成することができます。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@drawable/wide_btn_round_white" />
をしかし、この事は動作しません。私が理解しているように、このファイルを削除しないように指定するだけです。
ご協力いただきありがとうございます。
お問い合わせ
Ty、問題は 'shrinkResources'のため、' style.xml'でのみ指定されたすべてのドロアブルを難読化しています。だから私は 'style =" @ style/MyStyle "'とstyles.xml: ''のボタンを持っていました。スタイルから 'background'を指定した場所をコンポーネント属性に直接移動してもOKです。しかし、私は 'styles.xml'で指定されたdrawableをたくさん持っています。どのようにしても、 'tools:keep'にすべてのファイルを手動でリストするのではなく、これを修正できますか? – deathangel908
また、コンテンツを持つファイル 'app/src/main/res/values/keep.xml'を作成しようとしました:' <?xml version = "1.0" encoding = "utf-8"?> 'ファイルはとにかく壊れてしまいます。 –
deathangel908