关于自定义Navigation的问题
来源:1-1 课前必读(不看会错过一个亿)

沈太虚
2022-03-22
我按照视频上的写法一直敲完第三章,仔细比对了代码,json文件也在asset中生成了正确的json,然后按照视频中自定义的navgraphbuilder中的builder()方法把正确添加destination的navgraph和传进来的参数navContrller绑定好了,底部按钮也是按照老师视频中写的,点击运行后,一直闪退,后来仔细比对了老师的代码,发现并没有什么不同,但是老师的确定跑起来,我抄视频的demo却跑不起来,看了很久了,却一直在网上找不到解决办法。
Process: com.sjx.jetpack, PID: 10680
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sjx.jetpack/com.sjx.jetpack.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.sjx.jetpack/com.sjx.jetpack.ui.home.HomeFragment}; have you declared this activity in your AndroidManifest.xml?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3771)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3929)
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.ActivityThreadH.handleMessage(ActivityThread.java:2336)atandroid.os.Handler.dispatchMessage(Handler.java:106)atandroid.os.Looper.loop(Looper.java:257)atandroid.app.ActivityThread.main(ActivityThread.java:8256)atjava.lang.reflect.Method.invoke(NativeMethod)atcom.android.internal.os.RuntimeInitH.handleMessage(ActivityThread.java:2336)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8256)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInitH.handleMessage(ActivityThread.java:2336)atandroid.os.Handler.dispatchMessage(Handler.java:106)atandroid.os.Looper.loop(Looper.java:257)atandroid.app.ActivityThread.main(ActivityThread.java:8256)atjava.lang.reflect.Method.invoke(NativeMethod)atcom.android.internal.os.RuntimeInitMethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1031)
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.sjx.jetpack/com.sjx.jetpack.ui.home.HomeFragment}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2115)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1777)
at android.app.Activity.startActivityForResult(Activity.java:5427)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:597)
at android.app.Activity.startActivityForResult(Activity.java:5385)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:583)
at android.app.Activity.startActivity(Activity.java:5771)
at android.app.Activity.startActivity(Activity.java:5724)
at androidx.navigation.ActivityNavigator.navigate(ActivityNavigator.java:177)
at androidx.navigation.ActivityNavigator.navigate(ActivityNavigator.java:42)
at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:71)
at androidx.navigation.NavGraphNavigator.navigate(NavGraphNavigator.java:28)
at androidx.navigation.NavController.navigate(NavController.java:935)
at androidx.navigation.NavController.onGraphCreated(NavController.java:577)
at androidx.navigation.NavController.setGraph(NavController.java:534)
at androidx.navigation.NavController.setGraph(NavController.java:514)
at com.sjx.jetpack.NavGraphBuilder.build(NavGraphBuilder.java:61)
at com.sjx.jetpack.MainActivity.onCreate(MainActivity.java:35)
at android.app.Activity.performCreate(Activity.java:8129)
at android.app.Activity.performCreate(Activity.java:8113)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1359)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3744)
这是他的报错日志,清单文件的我加了,不关清单的文件的事情,,
他的报错日志指向了那两行,上图的蓝色字体,可是那两行我和视频里面的一模一样,也是
controller.setGraph(navGraph)这样的代码,把两个绑定起来,实在找不到错在哪里了。
1回答
-
LovelyChubby
2022-03-22
应该是你的fragment 上面标记了activityDestination的注解了
012022-03-22
相似问题