Почему он говорит: "ID не ссылается на представление внутри этого действия"
В настоящее время я пытаюсь создать новостное приложение, перейдя по ссылке здесь Создание новостного приложения в Android Studio || дизайн макета и извлечение данных из News Api - Часть 1 - YouTube[^] , в то же время я также создал нижнюю навигацию, чтобы попытаться сделать мое приложение другим, однако, хотя, когда я запустил его, эта ошибка вышла
java.lang.RuntimeException: Unable to start activity ComponentInfo{sg.edu.rp.c346.a4thpdappv2/sg.edu.rp.c346.a4thpdappv2.MainActivity}: java.lang.IllegalArgumentException: ID does not reference a View inside this Activity at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.IllegalArgumentException: ID does not reference a View inside this Activity at android.app.Activity.requireViewById(Activity.java:2678) at androidx.core.app.ActivityCompat.requireViewById(ActivityCompat.java:363) at androidx.navigation.Navigation.findNavController(Navigation.java:58) at sg.edu.rp.c346.a4thpdappv2.MainActivity.onCreate(MainActivity.java:101) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Что я уже пробовал:
поэтому я попытался конечно же попытаться выяснить где находится ошибка в файле MainActivity и она указала мне сюда
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); BottomNavigationView bottomNav = findViewById(R.id.bottom_nav); bottomNav.setOnNavigationItemSelectedListener(navListener); NavigationUI.setupWithNavController(bottomNav, navController); getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new HomeFragment());
тем не менее однако хотя я просмотрел свой файл activity_main и у меня уже есть идентификатор там как видно здесь
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <fragment android:name="androidx.navigation.fragment.NavHostFragment" android:id="@+id/nav_host_fragment" android:layout_width="match_parent" android:layout_height="match_parent" app:defaultNavHost="true" app:navGraph="@navigation/nav_graph" /> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_nav" app:menu="@menu/home" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_gravity="bottom" app:itemTextColor="@color/whiteColor" app:itemIconTint="@color/whiteColor" android:background="@color/colorPrimary"/> </RelativeLayout>
таким образом, как таковой я запутался в том, почему ошибка там утверждает, что идентификатор не ссылается на представление в действии, поскольку я явно уже имею его в первую очередь, и я не знаю, что еще я упускаю. Может ли кто-нибудь любезно помочь мне, пожалуйста?
David Crow
Что находится в строке 101 из MainActivity.java-что?
MervinWee
Привет, это вот эта строчка:
NavController navController = Navigation.findNavController(this, R. id.nav_host_fragment);