添加底部导航活动后的编译错误(非法字符)

问题描述 投票:0回答:1

添加底部导航活动,并尝试从另一个活动中调用它后,在编译时出现错误:

{project directory}\ui\dashboard\DashboardFragment.java:13: error: illegal character: '`'
import `in`.ac.somedomain.someappname.R;

并且导致错误的DashboardFragment.java中的代码是导入行:

import `in`.ac.somedomain.someappname.R;

我仅添加了一个新的底部导航活动,并尝试使用以下方法进行调用:

Intent homeIntent = new Intent(getApplicationContext, HomeActivity.class);
startActivity(homeIntent);

[手动删除“`”(在3个活动中:DashboardFragment,HomeFragment,NotificationsFragment)中,在调用活动时发生以下错误(logcat,应用程序崩溃):

2020-05-24 16:29:02.711 14323-14323/in.ac.somedomain.someappname E/AndroidRuntime: FATAL EXCEPTION: main
    Process: in.ac.somedomain.someappname, PID: 14323
    java.lang.RuntimeException: Unable to start activity ComponentInfo{in.ac.somedomain.someappname/in.ac.somedomain.someappname.BaseActivity}: 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:2943)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3078)
        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:1816)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6854)
        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:860)
     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:100)
        at androidx.navigation.NavController.addOnDestinationChangedListener(NavController.java:218)
        at androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(NavigationUI.java:220)
        at in.ac.somedomain.someappname.BaseActivity.onCreate(BaseActivity.java:26)
        at android.app.Activity.performCreate(Activity.java:7151)
        at android.app.Activity.performCreate(Activity.java:7142)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2923)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3078) 
        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:1816) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6854) 
        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:860) 

将鼠标悬停在代码中的“ in”上时出现错误,提示Raw string literals are not supported at language level '7',我尝试了其中的一些建议(将“源兼容性”切换为1.8,在级别8时也是如此),禁用了一些没有的建议。不能更改任何内容,现在它只是告诉我转到“模块设置”,但是我怀疑原始字符串是否有问题。

如何使我的底部导航活动正常工作?

android android-studio
1个回答
0
投票

首先,替换导入代码:

import `in`.ac.somedomain.someappname.R;

on:

 import ac.somedomain.someappname.R;

然后错误表明您有一个指向操作栏的链接= null。此答案可能会帮助您:answer

如果这没有帮助,请显示您的Java代码和清单。

也应该说动作栏和底部栏是不同的。

© www.soinside.com 2019 - 2024. All rights reserved.