Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序在使用proguard发布时崩溃_Android_Proguard_Android Multidex - Fatal编程技术网

Android应用程序在使用proguard发布时崩溃

Android应用程序在使用proguard发布时崩溃,android,proguard,android-multidex,Android,Proguard,Android Multidex,我的应用程序在创建发布版本时崩溃。应用程序工作正常,突然发生了这种情况。我在BaseActivity.javaMultiDex.install(这个)中有这一行我从SO尝试了多个选项,但没有一个有效。错误也没有提供足够的详细信息,或者我无法找到发生此问题的点。任何帮助都将不胜感激 这是堆栈跟踪 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.packagename, PID: 10136 java.lang.VerifyE

我的应用程序在创建发布版本时崩溃。应用程序工作正常,突然发生了这种情况。我在
BaseActivity.java
MultiDex.install(这个)中有这一行我从SO尝试了多个选项,但没有一个有效。错误也没有提供足够的详细信息,或者我无法找到发生此问题的点。任何帮助都将不胜感激

这是堆栈跟踪

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.packagename, PID: 10136
    java.lang.VerifyError: Verifier rejected class android.support.multidex.MultiDex: void android.support.multidex.MultiDex.<init>() failed to verify: void android.support.multidex.MultiDex.<init>(): [0x0] Constructor returning without calling superclass constructor (declaration of 'android.support.multidex.MultiDex' appears in /data/app/com.packagename-4uitso2MKAahWwylc8ZTtA==/base.apk!classes2.dex)
        at android.support.multidex.MultiDex.install(MultiDex.java:95)
        at com.packagename.baseactivity.BaseActivity.attachBaseContext(BaseActivity.java:43)
        at android.app.Application.attach(Application.java:224)
        at android.app.Instrumentation.newApplication(Instrumentation.java:1128)
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1162)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6607)
        at android.app.ActivityThread.access$2000(ActivityThread.java:268)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1995)
        at android.os.Handler.dispatchMessage(Handler.java:109)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:7539)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
使用Proguard规则更新

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keepattributes EnclosingMethod
-keepattributes InnerClasses
-dontwarn org.xmlpull.v1.**
-dontwarn android-support-v4.**
-dontwarn  com.crashlytics.**
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
-keep public class com.google.** {*;}
-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
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }
-keep class android.support.design.widget.** { *; }
-keep interface android.support.design.widget.** { *; }
-dontwarn android.support.design.**
-keep class yourpakganame.itemdecorator
-keep public class * extends android.support.v7.widget.RecyclerView.ItemDecoration
-keep class android.support.v7.widget.RecyclerView
-assumenosideeffects class android.util.Log{*;}
#1 to
-assumenosideeffects class * implements Interface {
    public <init>();
    public Object interfacemethod(); # May concern methods with same signature in other Objects
}
#end

-keep class net.sqlcipher.** { *; }
-dontwarn net.sqlcipher.**
-dontwarn OneSignalSDK.**
-dontwarn com.amazon.**
-dontwarn  com.crashlytics.**
-keep class android.support.** { *; }
-dontnote android.support.**
-dontwarn android.support.**
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**
-keep class okhttp3.**{ *;}
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-keep class com.crashlytics.** { *; }
-keep class com.shockwave.**
-keepclassmembers class com.shockwave.** { *; }
-keep class com.google.firebase.example.fireeats.model.** { *; }
-keepclassmembers class com.getbase.floatingactionbutton.FloatingActionsMenu$RotatingDrawable {
   void set*(***);
   *** get*();
}
#在此处添加特定于项目的程序规则。
#您可以使用
#在build.gradle中设置proguardFiles。
#
#有关详细信息,请参阅
#   http://developer.android.com/guide/developing/tools/proguard.html
#如果您的项目使用带JS的WebView,请取消注释以下内容
#并为JavaScript接口指定完全限定的类名
#类别:
#-keepclassmembers类fqcn.of.javascript.interface.for.webview{
#公众*;
#}
#取消对此的注释以保留行号信息
#调试堆栈跟踪。
-keepattributes源文件,LineNumberTable
#如果保留行号信息,请将其取消注释为
#隐藏原始源文件名。
-不要翻转
-重新打包类“”
-允许访问修改
-优化!代码/简化/算术
-keepattributes*注释*
-keepattributes封闭方法
-keepattributes内部类
-dontwarn org.xmlpull.v1**
-dontwarn android-support-v4**
-dontwarn com.crashlytics**
-保持类com.google.android.gms.*{*;}
-dontwarn com.google.android.gms**
-保持公共类com.google.*{*;}
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-保留署名
-keepattributes源文件,LineNumberTable
-dontwarn android.support.v7**
-keep类android.support.v7.*{*;}
-保留android.support.v7.*{*;}
-dontwarn android.support.design**
-keep class android.support.design.*{*;}
-保留android.support.design接口。**{*;}
-保留公共类android.support.design.R$*{*;}
-keep class android.support.design.widget.*{*;}
-保留android.support.design.widget.*{*;}
-dontwarn android.support.design**
-保持类yourpakganame.itemdecorator
-keep public class*扩展了android.support.v7.widget.RecyclerView.ItemDecoration
-保持类android.support.v7.widget.RecyclerView
-assumenosideeffects类android.util.Log{*;}
#1至
-assumenosideeffects类*实现接口{
公共的();
公共对象接口方法();#可能涉及其他对象中具有相同签名的方法
}
#结束
-保持类net.sqlcipher.*{*;}
-dontwarn net.sqlcipher**
-dontwarn OneSignalSDK**
-dontwarn com.amazon**
-dontwarn com.crashlytics**
-保留类android.support.*{*;}
-dontnote.support**
-dontwarn android.support**
-保持类com.firebase.*{*;}
-保持类org.apache.*{*;}
-keepnames类com.fasterxml.jackson.*{*;}
-keepnames类javax.servlet.*{*;}
-keepnames类org.ietf.jgss.*{*;}
-dontwarn okhttp3**
-唐特沃恩·奥基奥**
-保持类okhttp3.*{*;}
-dontwarn org.apache**
-dontwarn org.w3c.dom**
-dontwarn org.joda.time**
-dontwarn org.shade.apache**
-保持类com.crashlytics.*{*;}
-保持类com.shockwave**
-keepclassmembers类com.shockwave.*{*;}
-保持类com.google.firebase.example.fireets.model.*{*;}
-keepclassmembers类com.getbase.floatingactionbutton.FloatingActionsMenu$RotatingDrawable{
无效集*(***);
***得到*();
}
来自

从proguard文件中删除以下行

#1 to
-assumenosideeffects class * implements Interface {
    public <init>();
    public Object interfacemethod(); # May concern methods with same signature in other Objects
}
#end


}

添加
implementation'com.android.support:multidex:1.0.3'
在gradle Dependency内部已经尝试过,但问题相同。请关注下面的android官方文章,您就可以开始了。我已经用multidex尝试了所有选项。请在此处发布您的
proguard
#1 to
-assumenosideeffects class * implements Interface {
    public <init>();
    public Object interfacemethod(); # May concern methods with same signature in other Objects
}
#end
-assumenosideeffects class android.util.Log{*;}
-assumenosideeffects class android.util.Log {
   public static *** v(...);
   public static *** d(...);
   public static *** i(...);
   public static *** w(...);
   public static *** e(...);
   public static *** wtf(...);