2017-11-11 8 views
1

最近私のビューにフォントを設定するためにuk.co.chrisjenx.calligraphyライブラリから使用されました。デバッグモードでは、すべてがOKですが、リリースモードでは、任意のアクティビティをクリックするとInflateExceptionが発生します。私はそれを処理するためにいくつかの助けが必要です。 。 これは私のProGuardのルールです:InflateExceptionがリリースモードにあります

-keep class butterknife.** { *; } 
-dontwarn butterknife.internal.** 
-keep class **$$ViewBinder { *; } 

-keepclasseswithmembernames class * { 
    @butterknife.* <fields>; 
} 

-keepclasseswithmembernames class * { 
    @butterknife.* <methods>; 
} 

-dontwarn com.squareup.okhttp.** 
-keep class android.** 
-dontwarn android.** 
-dontwarn com.google.android.gms.** 

と、これはAndroidのメーカーのログです:

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.matingdz.InsDLFreeGooglePlay, PID: 4592 
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matingdz.InsDLFreeGooglePlay/com.matingdz.InsDLFreeGooglePlay.DlStory}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class Button 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
         at android.app.ActivityThread.-wrap11(Unknown Source:0) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
         at android.os.Handler.dispatchMessage(Handler.java:105) 
         at android.os.Looper.loop(Looper.java:164) 
         at android.app.ActivityThread.main(ActivityThread.java:6541) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
        Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class Button 
        Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class Button 
        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.AppCompatBackgroundHelper.a()' on a null object reference 
         at android.support.v7.widget.AppCompatButton.setBackgroundDrawable(Unknown Source:5) 
         at android.view.View.setBackground(View.java:20326) 
         at android.view.View.<init>(View.java:5200) 
         at android.widget.TextView.<init>(TextView.java:824) 
         at android.widget.Button.<init>(Button.java:172) 
         at android.widget.Button.<init>(Button.java:147) 
         at android.support.v7.widget.AppCompatButton.<init>(Unknown Source:4) 
         at android.support.v7.widget.AppCompatButton.<init>(Unknown Source:3) 
         at android.support.v7.app.AppCompatViewInflater.a(Unknown Source:284) 
         at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(Unknown Source:51) 
         at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(Unknown Source:4) 
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772) 
         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
         at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 
         at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
         at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
         at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(Unknown Source:3) 
         at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
         at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
         at android.support.v7.app.AppCompatDelegateImplV9.b(Unknown Source:23) 
         at android.support.v7.app.AppCompatActivity.setContentView(Unknown Source:4) 
         at com.matingdz.InsDLFreeGooglePlay.DlStory.onCreate(Unknown Source:7) 
         at android.app.Activity.performCreate(Activity.java:6975) 
         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) 

答えて

0

あなたProGuardのルールファイルにこのルールを追加してください:

-keepclassmembernames class android.support.v7.widget.** { *; } 

私は」それが最善の解決策であるかどうかは分かりませんが、それは私のためのトリックでした。

+0

ようこそStackOverflow。そのルールが何をするかについての説明を追加すると、あなたの答えを改善するのに役立ちます。 – AfroThundr

関連する問題