>

xamarin 양식을 작성 중이며 APK 크기를 줄이고 성능을 향상시키고 싶었습니다. APK 크기를 줄이기 위해 ProGuard를 활성화하여 시도했습니다. 하지만 APK를 생성 (릴리스) 한 후에는 작동하지 않습니다. 도움을 주시면 감사하겠습니다.

처리되지 않은 예외는 :

와이즈 비즈

Java.Lang.RuntimeException: Unable to start activity ComponentInfo{com.companyname.RCBazaar/md514419014412832c50536fe1441e86d52.MainActivity}: android.view.InflateException: Binary XML file line #20: Error inflating class android.support.v7.widget.FitWindowsFrameLayout.

와이즈 비즈 StackTrace:
  • 답변 # 1

    먼저 proguard.cfg 라는 파일을 프로젝트에 추가하십시오 빌드 액션을 ProGuardconfiguration으로 설정

    다음 코드를 추가하십시오

    -keep class com.google.android.gms.** { *; }
    -dontwarn com.google.android.gms.**
    -keep class com.microsoft.windowsazure.messaging.** { *; }
    -dontwarn com.microsoft.windowsazure.messaging.**
    -keep class com.google.firebase.** { *; }
    -dontwarn com.google.firebase.**
    -keep class android.support.v7.widget.** { *; }
    -dontwarn android.support.v7.widget.**
    -keep class android.support.v4.widget.Space { *; }
    -dontwarn android.support.v4.widget.Space
    
    

    또한 Xamarin이 제안한 다음을 추가하십시오.

    -injars  bin/classes
    -injars  libs
    -outjars bin/classes-processed.jar
    -libraryjars /usr/local/java/android-sdk/platforms/android-9/android.jar
    -dontpreverify
    -repackageclasses ''
    -allowaccessmodification
    -optimizations !code/simplification/arithmetic
    -keepattributes *Annotation*
    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider
    -keep public class * extends android.view.View {
     public <init>(android.content.Context);
     public <init>(android.content.Context, android.util.AttributeSet);
     public <init>(android.content.Context, android.util.AttributeSet, int);
     public void set*(...);
    }
    -keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet);
     }
     -keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet, int);
     }
     -keepclassmembers class * implements android.os.Parcelable {
     static android.os.Parcelable$Creator CREATOR;
     }
    -keepclassmembers class **.R$* {
     public static <fields>;
    }
    
    

    이해하지 못하는 경우 이것을 확인하십시오

    쿼리가 복귀 된 경우.

관련 자료

  • 이전 ajax - xml 구문 분석 오류 - aspnet core 20 api에 루트 요소가 없습니다
  • 다음 google cloud platform - 기본 사용자와 같은 사용자를 만드는 방법은 무엇입니까?