使用 proguard 时收到不清楚的运行时错误消息

时间:2021-06-01 11:30:33

标签: android android-studio android-layout proguard android-r8

所以每当我取消注释

            //proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

在我的应用程序模块的 build.gradle 文件中,我的应用程序在运行时崩溃。如果我保留这行注释,我的应用程序运行良好。

我得到的错误信息在这里:

    Process: com.sbeve.jada, PID: 9773
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sbeve.jada/com.sbeve.jada.ui.activities.MainActivity}: android.view.InflateException: Binary XML file line #15 in com.sbeve.jada:layout/activity_main: Binary XML file line #15 in com.sbeve.jada:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: android.view.InflateException: Binary XML file line #15 in com.sbeve.jada:layout/activity_main: Binary XML file line #15 in com.sbeve.jada:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
     Caused by: android.view.InflateException: Binary XML file line #15 in com.sbeve.jada:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
     Caused by: b.k.b.m$c: Unable to instantiate fragment com.sbeve.jada.ui.fragments.MainFragment: calling Fragment constructor caused an exception
        at b.k.b.b0$e.a(:4)
        at b.o.x.a.b(:4)
        at b.o.o.b(:9)
        at androidx.navigation.NavController.e(:5)
        at androidx.navigation.NavController.i(:42)
        at androidx.navigation.fragment.NavHostFragment.S(:24)
        at b.k.b.h0.e(:1)
        at b.k.b.h0.k(:8)
        at b.k.b.b0.E(:8)
        at b.k.b.b0.Y(Unknown Source:94)
        at b.k.b.b0.D(Unknown Source:30)
        at androidx.fragment.app.FragmentContainerView.<init>(:7)
        at b.k.b.z.onCreateView(Unknown Source:16)
        at b.k.b.p.onCreateView(:4)
        at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1067)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
        at com.sbeve.jada.ui.activities.MainActivity.onCreate(:1)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
            ... 37 more
     Caused by: java.lang.LinkageError: Method void com.sbeve.jada.ui.fragments.MainViewModel.a() overrides final method in class Lb/m/v; (declaration of 'com.sbeve.jada.ui.fragments.MainViewModel' appears in /data/app/~~ssx--eJmwiONCO59XV-zFA==/com.sbeve.jada-hcyjbzYHXgaIG8vOt7SZOQ==/base.apk)
            ... 39 more

这个错误非常令人困惑,我在 MainActivity 的布局文件中找不到任何错误。我不明白为什么只有在我取消注释该行时才会显示此错误。好像我需要添加一个 proguard 规则,但我不知道我需要添加到我的 proguard 中。

而且由于我的应用是开源的,您可以在 https://github.com/sbeve72/JADA

查看完整的源代码

0 个答案:

没有答案
相关问题