Apk файл не работает с включенным proguard в xamarin форм Android - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над формами xamarin и хочу уменьшить размер APK и улучшить производительность.Я попытался включить ProGuard, чтобы уменьшить размер APK.Но после генерации (выпуска) APK не работает.Пожалуйста, любая помощь будет оценена.

Исключение необработанного::

Java.Lang.RuntimeException: Невозможно начать деятельность ComponentInfo {com.companyname.RCBazaar / md514419014412832c50536fe1441e86d52.MainActivityandroid.view.InflateException: строка двоичного XML-файла # 20: ошибка надувания класса android.support.v7.widget.FitWindowsFrameLayout.

StackTrace:

в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] в <4f3358c3df0042d0bd6cef1efa29748d>: 0 в Java.Interop.JniEnvironment + InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference * экземпляр, Java.InjectOfo.Jo.арг) [0x00089] в: 0 в Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (System.IntPtr jobject, System.IntPtr JClass, System.IntPtr jmethod, Android.Runtime.JValue * Parms) [0x00015] в <9c44aef564514541bb63163656b8198b>: 0 вAndroid.Support.V7.App.AppCompatActivity.SetSupportActionBar (панель инструментов Android.Support.V7.Widget.Toolbar) [0x00088] в <4ab3f13aee974899a73f2f846f804630>: 0 в Xamarin.Forms.Platform.Android.FormsAppCompatActivity.\ a \ 1 \ s \ Xamarin.Forms.Platform.Android \ AppCompat \ FormsAppCompatActivity.cs: 164 в RCBazaar.Droid.MainActivity.OnCreate (комплект Android.OS.Bundle) [0x00018] в D: \ manasa \ RCBazaar \ RCBaza\ RCBazaar \ RCBazaar.Android \ MainActivity.cs: 38 Конец управляемой трассировки стека Java.Lang.RuntimeException android.view.InflateException: строка двоичного файла XML # 20: ошибка надувания класса android.support.v7.widget.FitWindowsFrameLayout android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:707) android.view.LayoutInflater.inflate (LayoutInflater.java:469) android.view.LayoutInflater.inflate (LayoutInflater.java:397) android.view.LayoutInfla ((: 353)

1 Ответ

0 голосов
/ 25 сентября 2018

Хорошо, сначала добавьте в ваш проект файл с именем 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>;
}

Если вы не понимаете , отметьте

В случае возврата запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...