已签名APK应用程序崩溃,但在Android Studio中不会崩溃

6

我的应用程序在从Android Studio安装时运行得很好,但是一旦我将签名的APK安装到任何设备上,该应用程序就无法运行。以下是从Google Play开发者控制台提供的朋友设备崩溃转储。显然与布局有关,但我不确定在发布版本中是什么导致了它,而在测试期间却没有。当我在我的设备上进行测试时,没有出现错误,并且在Android Studio中也没有错误。因为我是一个相对新手开发人员,所以我不知道该怎么办。任何帮助或建议都将不胜感激。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.j.a.p/com.j.a.p.MainActivity}: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class android.support.design.widget.NavigationView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
        at android.app.ActivityThread.access$1100(ActivityThread.java:221)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:158)
        at android.app.ActivityThread.main(ActivityThread.java:7224)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
    Caused by: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class android.support.design.widget.NavigationView
        at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
        at android.support.v7.a.w.a(SourceFile:257)
        at android.support.v7.a.p.setContentView(SourceFile:109)
        at com.j.a.p.MainActivity.onCreate(SourceFile:31)
        at android.app.Activity.performCreate(Activity.java:6876)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
        ... 9 more
    Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class android.support.design.widget.NavigationView
        at android.view.LayoutInflater.createView(LayoutInflater.java:657)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
        ... 17 more
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance(Native Method)
        at android.view.LayoutInflater.createView(LayoutInflater.java:631)
        ... 22 more
    Caused by: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.design.internal.NavigationMenuView
        at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
        at android.support.design.internal.c.a(SourceFile:97)
        at android.support.design.widget.NavigationView.<init>(SourceFile:165)
        at android.support.design.widget.NavigationView.<init>(SourceFile:94)
        ... 24 more
    Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.internal.NavigationMenuView
        at android.view.LayoutInflater.createView(LayoutInflater.java:657)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
        ... 28 more
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance(Native Method)
        at android.view.LayoutInflater.createView(LayoutInflater.java:631)
        ... 31 more
    Caused by: java.lang.IllegalStateException: Binary XML file line #17: Error creating LayoutManager android.support.v7.widget.LinearLayoutManager
        at android.support.v7.widget.RecyclerView.a(SourceFile:540)
        at android.support.v7.widget.RecyclerView.<init>(SourceFile:485)
        at android.support.design.internal.NavigationMenuView.<init>(SourceFile:39)
        at android.support.design.internal.NavigationMenuView.<init>(SourceFile:35)
        ... 33 more
    Caused by: java.lang.NoSuchMethodException: <init> []
        at java.lang.Class.getConstructor(Class.java:528)
        at java.lang.Class.getConstructor(Class.java:492)
        at android.support.v7.widget.RecyclerView.a(SourceFile:537)
        ... 36 more
    Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet, int, int]
        at java.lang.Class.getConstructor(Class.java:528)
        at java.lang.Class.getConstructor(Class.java:492)
        at android.support.v7.widget.RecyclerView.a(SourceFile:532)
        ... 36 more

1
您可能已启用了Proguard,这可能会影响NavigationMenu视图。 - OneCricketeer
2
如果想尝试,请禁用Proguard并尝试构建已签名的APK,如果可以正常工作,则应更新您的Proguard文件,否则问题可能不同。 - Shrenik Shah
2个回答

5

尝试删除项目中的proguard目录,包括proguard-android.txt或proguard-rules.pro等任何proguard文件。

第二个选项 - 尝试在您的build.gradle文件中进行更改。

 buildTypes {

        debug {
            minifyEnabled false

        }
        release {
            minifyEnabled false

        }
    }

使用任何一种选项或两种选项的组合


第二个选项,调试设置为true,发布设置为false,完美地解决了问题,谢谢。 - Icarus Ridexx

0
如果您添加了类似 Glide 这样需要在 proguard 中进行配置的库,则应将所需的代码行添加到您的 proguard-rules.pro 文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接