安卓的一个坑,java.lang.IllegalArgumentException: No @Navigator.Name annotation found

17 阅读1分钟

本人第一次接触安卓,这是我学安卓的第8天

在提交应用到谷歌的时候,遇到这个bug,很奇怪,不知道为啥,插线到手机测试怎么都没问题,一打包安装就会崩。

我找了很久,真的不知道原来安装还有混淆这种东西

原因是:混淆把搞的锅

解决办法:在混淆文件里加这两行

-keepattributes RuntimeVisibleAnnotations
-keep class * extends androidx.navigation.Navigator

下面是报错的日志,看看是不是和你的一样

FATAL EXCEPTION: main
Process: com.comicbear, PID: 27591
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.comicbear/com.comicbear.ui.main.MainActivity}: android.view.InflateException: Binary XML file line #32 in com.comicbear:layout/activity_main: Binary XML file line #32 in com.comicbear:layout/activity_main: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3900)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4046)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThreadH.handleMessage(ActivityThread.java:2440)                                                     atandroid.os.Handler.dispatchMessage(Handler.java:106)                                                     atandroid.os.Looper.loopOnce(Looper.java:211)                                                     atandroid.os.Looper.loop(Looper.java:300)                                                     atandroid.app.ActivityThread.main(ActivityThread.java:8321)                                                     atjava.lang.reflect.Method.invoke(NativeMethod)                                                     atcom.android.internal.os.RuntimeInitH.handleMessage(ActivityThread.java:2440)                                                                                                         at android.os.Handler.dispatchMessage(Handler.java:106)                                                                                                         at android.os.Looper.loopOnce(Looper.java:211)                                                                                                         at android.os.Looper.loop(Looper.java:300)                                                                                                         at android.app.ActivityThread.main(ActivityThread.java:8321)                                                                                                         at java.lang.reflect.Method.invoke(Native Method)                                                                                                         at com.android.internal.os.RuntimeInitMethodAndArgsCaller.run(RuntimeInit.java:581)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: android.view.InflateException: Binary XML file line #32 in com.comicbear:layout/activity_main: Binary XML file line #32 in com.comicbear:layout/activity_main: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #32 in com.comicbear:layout/activity_main: Error inflating class fragment
Caused by: java.lang.IllegalArgumentException: No @Navigator.Name annotation found for k
at androidx.navigation.r.c(Unknown Source:59)
at androidx.navigation.r.a(Unknown Source:4)
at androidx.navigation.NavController.(Unknown Source:71)
at androidx.navigation.l.(Unknown Source:0)
at androidx.navigation.fragment.NavHostFragment.u0(Unknown Source:6)
at androidx.fragment.app.Fragment.Z0(Unknown Source:16)
at androidx.fragment.app.n.d(Unknown Source:49)
at androidx.fragment.app.j.B0(Unknown Source:225)
at androidx.fragment.app.j.A0(Unknown Source:2)
at androidx.fragment.app.h.onCreateView(SourceFile:33)
at androidx.fragment.app.e.w(Unknown Source:8)
at androidx.fragment.app.FragmentActivity.y(Unknown Source:2)
at androidx.fragment.app.FragmentActivity.onCreateView(SourceFile:1)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1113)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1026)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:990)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1169)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1130)
at android.view.LayoutInflater.inflate(LayoutInflater.java:711)
at android.view.LayoutInflater.inflate(LayoutInflater.java:548)
at q3.g.d(Unknown Source:3)
at q3.g.c(Unknown Source:2)
at com.comicbear.ui.main.MainActivity.W(Unknown Source:4)
at com.comicbear.base.BaseActivity.onCreate(Unknown Source:3)
at com.comicbear.ui.main.MainActivity.onCreate(Unknown Source:0)
at android.app.Activity.performCreate(Activity.java:8547)
at android.app.Activity.performCreate(Activity.java:8511)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1437)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3881)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4046)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThreadH.handleMessage(ActivityThread.java:2440)                                                     atandroid.os.Handler.dispatchMessage(Handler.java:106)                                                     atandroid.os.Looper.loopOnce(Looper.java:211)2024032101:26:16.3672759127591AndroidRuntime     com.comicbear            E    atandroid.os.Looper.loop(Looper.java:300)                                                     atandroid.app.ActivityThread.main(ActivityThread.java:8321)                                                     atjava.lang.reflect.Method.invoke(NativeMethod)                                                     atcom.android.internal.os.RuntimeInitH.handleMessage(ActivityThread.java:2440)                                                                                                         at android.os.Handler.dispatchMessage(Handler.java:106)                                                                                                         at android.os.Looper.loopOnce(Looper.java:211) 2024-03-21 01:26:16.367 27591-27591 AndroidRuntime          com.comicbear                        E      at android.os.Looper.loop(Looper.java:300)                                                                                                         at android.app.ActivityThread.main(ActivityThread.java:8321)                                                                                                         at java.lang.reflect.Method.invoke(Native Method)                                                                                                         at com.android.internal.os.RuntimeInitMethodAndArgsCaller.run(RuntimeInit.java:581)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)