java - 已签名的 Apk 不断崩溃

标签 java android android-studio gradle

升级并添加另一个模块后,Apk 在旧版本上运行良好我收到此错误

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2020-10-18 10:16:02.419 29711-29711/? E/UncaughtException: java.lang.NoSuchMethodError: No interface method b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; in class Landroid/content/res/XmlResourceParser; or its super classes (declaration of 'android.content.res.XmlResourceParser' appears in /system/framework/framework.jar)
        at android.support.v4.content.FileProvider.g(Unknown Source:44)
        at android.support.v4.content.FileProvider.d(Unknown Source:13)
        at android.support.v4.content.FileProvider.attachInfo(Unknown Source:13)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6983)
仅在 Release模式下崩溃,这是我的 Gradle 文件

        release {

            minifyEnabled true 
          
            shrinkResources true


            debuggable false

            multiDexKeepProguard file('multidex-config.pro')
}
我已经在我的 proguard 规则中添加了这些行,但没有帮助我
-keep class org.xmlpull.v1.** { *;}
-dontwarn org.xmlpull.v1.**
这是我在以前版本的应用程序中定义的 proguard 规则,并且运行良好

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontoptimize
-dontpreverify
-dontwarn android.**


#-dontwarn android.support.v4.**
#-dontwarn com.google.**
#-dontwarn org.apache.**
#-dontwarn com.mixpanel.**
#-dontwarn android.net.http.**
#-dontwarn com.google.common.cache.**
#-dontwarn com.google.common.primitives.**
#-dontwarn com.google.api.client.googleapis.**
#-dontwarn org.apache.http.*
#-dontwarn com.fasterxml.jackson.databind.**
#-dontwarn com.adobe.**





# okhttp
-dontwarn okio.**
-dontwarn okhttp3.**
-keep class okio.**
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }

# appcompat
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }

-dontwarn org.apache.**
-dontwarn com.google.**
-dontwarn sun.misc.Unsafe.**
-dontwarn com.android.volley.**
-dontwarn com.squareup.okhttp.**
-dontwarn okio.**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**


-keep class com.** { *; }



-dontwarn android.webkit.WebView
-dontwarn android.net.http.SslError
-dontwarn android.webkit.WebViewClient
-dontwarn java.nio.file.Files
-dontwarn java.nio.file.Path
-dontwarn java.nio.file.OpenOption
-dontnote junit.framework.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
#-dontwarn com.squareup.picasso.*
#-dontwarn com.wasl.properties.*

#-keepparameternames
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,EnclosingMethod

-keepattributes SourceFile,LineNumberTable
-keep class com.parse.*{ *; }
-dontwarn com.parse.**
#-dontwarn com.squareup.picasso.**

-keep class com.squareup.picasso.*{ *; }

-keep class com.flurry.** { *; }
-keep class org.xmlpull.v1.* {*;}
-dontwarn org.xmlpull.v1.**
-dontwarn javax.xml.namespace.**
-dontwarn org.apache.commons.**
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**


#-keep class com.intuz.addresspicker.** { *; }


-keep class com.samsung.** {*;}
-dontwarn com.samsung.**
#-keep class com.samsung.android.sdk.pass.** { *; }
#-keep class com.samsung.android.sdk.** { *; }
#-dontwarn com.samsung.android.fingerprint.IFingerprintClient;

-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.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.FragmentActivity
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment



-keep public class com.wasl.OAM.unregistered.PreferencesStore
-keep public class com.wasl.OAM.unregistered.ObscuredSharedPreferences

-keep public class com.wasl.OAM.unregistered.CommonFunction

-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

-keep public class * extends android.os.AsyncTask
-keep class org.apache.http.** { *; }
-keep class org.apache.commons.codec.** { *; }
-keep class org.apache.commons.logging.** { *; }
-keep class android.net.compatibility.** { *; }
-keep class android.net.http.** { *; }

-keep class android.support.v4.media.** { *; }
-keep interface android.support.v4.media.** { *; }
-keep class com.google.** { *; }
-keep class android.** { *; }
-keep class com.google.android.**
-keep class com.google.android.gms.**
-keep class com.google.android.gms.location.**
-keep class com.google.api.client.**
-keep class com.google.maps.android.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-keep class com.google.android.** { *; }
-keep interface com.google.android.** { *; }
-keep class com.google.gson.** { *; }
-keep class com.google.gson.reflect.** { *; }
-keep interface com.google.gson.** { *; }
-keep class libcore.**

-keep class com.fasterxml.jackson.** { *; }
#-keep class okio.**

-keep class com.wasl.OAM.** { *; }

-keep class com.** { *; }

-keep class com.wasl.OAM.pushNotification.** { *; }



-keep class butterknife.** { *; }

-keep public class com.wasl.OAM.** {
  public protected private *;
}


-keep class sun.bob.mcalendarview.** { *; }
#-keep class cz.msebera.android.httpclient.annotation.** { *; }
-keep class com.** { *; }
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}

#-keep class okio.** { *; }
#-keep class okhttp3.** { *; }
#-keep class android.** { *; }


-keep class myApp.interfaces.** { *; }

-keep public class android.net.http.SslError
-keep public class android.webkit.WebViewClient
-keep class com.google.android.gms.** { *; }



-keepattributes Signature
-dontwarn com.google
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes Exceptions
-keep class org.junit.** { *; }
-dontwarn org.junit.**

-keep class junit.** { *; }
-dontwarn junit.**
-keep public interface android.support.test.espresso.IdlingResource$ResourceCallback {*;}

-keepattributes InnerClasses

-keep public class org.apache.commons.io.**
-keep public class com.google.gson.**
-keep public class com.google.gson.** {public private protected *;}


-keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry
-keep class com.google.common.cache.LocalCache$ReferenceEntry
-keep interface com.google.android.gms.maps.** { *; }

-keep class com.fasterxml.jackson.** { *; }
-keep class com.enstage.** { *; }
-keep class com.adobe.** { *; }

-keep class com.fasterxml.jackson.core.** { *; }

-keepclassmembers class * extends java.lang.Enum {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepclassmembers public class * extends android.view.View {
      void set*(***);
      *** get*();
   }
-assumenosideeffects class android.util.Log {
        public static *** d(...);
        public static *** v(...);
        public static *** w(...);
    }


-keepclassmembers class * extends android.app.Activity {

   public void *(android.view.View);
}


    # Keep GSON stuff
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.** { *; }

-keep class com.google.** {*;}

-keepclassmembers class com.google.** {*;}

-keepclassmembers class fqcn.of.javascript.interface.for.webview {public *;}
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int);}
-keep class pl.droidsonroids.gif.GifInfoHandle{<init>(long,int,int,int);}
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int, java.lang.String);}
-keep class com.intuit.sdp.** { *; }
-keep class pl.droidsonroids.gif.GifIOException.** { *; }
-keep class pl.droidsonroids.gif.** {*;}

-keep public class * {
    public protected *;
    }
-keepclassmembernames class * {
   static <methods>;
   }
-keepclasseswithmembernames class * {
        native <methods>;
        }

-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}



# Preserve all .class method names.

-keepclassmembernames class * {
    java.lang.Class class$(java.lang.String);
    java.lang.Class class$(java.lang.String, boolean);
}
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keep public class * extends android.view.View {
        public <init>(android.content.Context);
    }
-keep public class * extends android.view.View {
        public <init>(android.content.Context, android.util.AttributeSet);
    }
-keep public class * extends android.view.View {
        public <init>(android.content.Context, android.util.AttributeSet, int);
    }

    #Maintain enums
-keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }

    #To keep parcelable classes (to serialize - deserialize objects to sent through Intents)
-keep class * implements android.os.Parcelable {
      public static final android.os.Parcelable$Creator *;
    }

    -keep class org.jivesoftware.smack.** {*;}
    -keep class org.jivesoftware.smackx.** {*;}

    #Keep the R
#-keepclassmembers class **.R$* {
#        public static <fields>;
#    }
#
    -keepattributes InnerClasses
     -keep class **.R
     -keep class **.R$* {
        <fields>;
    }
``

this is multidex-config.pro file that is mention in build.gradle 


最佳答案

确保在创建已发布的 APK 文件时选中 v1 和 v2 复选框,如下图所示:
enter image description here
另外,尝试创建一个签名包并尝试使用它。

关于java - 已签名的 Apk 不断崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64495996/

相关文章:

android - MathView 中的点击监听器

java - 设置 JNotify

java - Android studio 变量自增问题

android - 当我尝试从中获取数据时,ViewModel 返回清晰的对象

android - 拒绝所有权限后无法继续

android - Android Studio 无法识别 .kt 文件

Android Studio 3.1 - 插件 Android 支持异常

java - 对正在运行的进程执行命令

java - 如何将 Waze 流量​​数据集成到网站中?

android - 没有标题的自定义对话框弄乱了我的布局