Java 在Android Studio中将底部导航栏与其他代码合并

Java 在Android Studio中将底部导航栏与其他代码合并,java,android-studio,kotlin,Java,Android Studio,Kotlin,我现在正在构建一个多人的应用程序,我正在尝试将我制作的底部导航栏与其他人的代码合并,但是在我用这条很长的消息实现我的导航栏后,由于运行时错误,该应用程序立即崩溃。有人知道怎么解决这个问题吗 2020-06-30 00:59:26.429 7505-7505/com.example.unieats E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.unieats, PID: 7505 java.lang.Run

我现在正在构建一个多人的应用程序,我正在尝试将我制作的底部导航栏与其他人的代码合并,但是在我用这条很长的消息实现我的导航栏后,由于运行时错误,该应用程序立即崩溃。有人知道怎么解决这个问题吗

2020-06-30 00:59:26.429 7505-7505/com.example.unieats E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.unieats, PID: 7505
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.unieats/com.example.unieats.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3430)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86)
        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:2199)
        at android.os.Handler.dispatchMessage(Handler.java:112)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
        at androidx.navigation.ui.ActionBarOnDestinationChangedListener.setTitle(ActionBarOnDestinationChangedListener.java:48)
        at androidx.navigation.ui.AbstractAppBarOnDestinationChangedListener.onDestinationChanged(AbstractAppBarOnDestinationChangedListener.java:103)
        at androidx.navigation.NavController.addOnDestinationChangedListener(NavController.java:233)
        at androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(NavigationUI.java:227)
        at androidx.navigation.ui.ActivityKt.setupActionBarWithNavController(Activity.kt:74)
        at com.example.unieats.MainActivity.onCreate(MainActivity.kt:27)
        at android.app.Activity.performCreate(Activity.java:7458)
        at android.app.Activity.performCreate(Activity.java:7448)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1286)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3409)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86) 
        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:2199) 
        at android.os.Handler.dispatchMessage(Handler.java:112) 
        at android.os.Looper.loop(Looper.java:216) 
        at android.app.ActivityThread.main(ActivityThread.java:7625) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) 
更新:似乎是我的MainActivity文件导致了问题。下面是该文件的代码-val navView之前的所有代码都是已经存在的代码,之后的所有代码都是我添加的

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val navView: BottomNavigationView = findViewById(R.id.nav_view)

        val navController = findNavController(R.id.nav_host_fragment)
        val appBarConfiguration = AppBarConfiguration(setOf(
            R.id.navigation_home, R.id.navigation_search, R.id.navigation_log,
            R.id.navigation_settings, R.id.navigation_profile))
        setupActionBarWithNavController(navController, appBarConfiguration)
        navView.setupWithNavController(navController) 
         
    }
}

错误似乎不是来自正在合并的导航栏,而是来自操作栏。确保在创建的“活动/片段”中有要调用的操作栏,以便按照错误指示为其设置标题。

在val navView之前是否可以共享代码我认为有问题 或者在res/values/style.xml中检查AppTheme 如果您的AppTheme父项以.NoActionBar结尾,则将其更改为.darkaActionBar
希望有帮助

您好,谢谢您的回复!我只是想知道在活动/片段中有一个操作栏是什么意思-就像在MainActivity文件中一样?我现在没有在MainActivity中声明操作栏,但我使用的是setupActionBarWithNavController命令。你是说这个问题吗?(很抱歉,我之前没有Android studio的经验)我认为如果没有看到问题所在的代码,我很难告诉您更新的原始帖子-如果您能看一看,我将不胜感激:)谢谢!