android studio中操作栏的java.lang.nullpointerexception

ercv8c1e  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(369)

我正在尝试做一个小项目,在编译整个应用程序之前,所有这些操作栏都工作了,但是编译之后这个错误出现了。

FATAL EXCEPTION: main

Process: com.example.rentngo, PID: 7674

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rentngo/com.example.rentngo.CarList}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference

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 com.example.rentngo.CarList.onCreate(CarList.java:21)

java中第21行的代码基本上是两个getsupportactionbar()代码。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_car_list);
        getSupportActionBar().setTitle("Select Your Ride!");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

基本上,这个错误信息出现在上面代码行组成的每个页面上,我在这里似乎找不到错误的主要来源。一开始我以为我的主页工具栏是原因,但这个错误仍然在这里,即使我删除了它。想知道一些建议,并将编辑和张贴任何需要的代码在这里,因为我不知道在哪一部分张贴
编辑:
这是carlist.java的xml代码,它基本上是一个带有recyclerview的空约束

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".CarList">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/browsedRecycler"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

    </androidx.recyclerview.widget.RecyclerView>

</androidx.constraintlayout.widget.ConstraintLayout>

舱单的代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.rentngo">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_app"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_app_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <!-- Payment -->
        <activity android:name=".MainPayActivity"
            android:parentActivityName=".qrCode"/>

        <activity android:name=".newPayment"
            android:parentActivityName=".payment" />

        <activity android:name=".qrPay"
            android:parentActivityName=".qrCode" />

        <activity android:name=".qrCode"
            android:parentActivityName=".payment" />

        <activity android:name=".cashPayment"
            android:parentActivityName=".payment" />

        <activity android:name=".creditCard"
            android:parentActivityName=".payment" />

        <activity android:name=".payment"
            android:parentActivityName=".CarList" />

        <!-- Maps -->
            <activity android:name=".MapsActivity"></activity>

        <!-- Car/list/news -->
        <activity android:name=".carsInfoPage"
            android:parentActivityName=".CarList" />

        <activity android:name=".CarList"
            android:parentActivityName=".HomeActivity" >

        </activity>

        <activity android:name=".news"
            android:parentActivityName=".HomeActivity" />

        <!-- Login/SignUp/Home -->
        <activity android:name=".ResetPWActivity" />
        <activity android:name=".ProfileActivity" />
        <activity android:name=".SignupActivity" />
        <activity android:name=".LoginActivity">

        </activity>
        <activity android:name=".HomeActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
    </application>

</manifest>

styles.xml的代码

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">#FFFFFF</item>
        <item name="colorPrimaryDark">#00BCD4</item>
        <item name="colorAccent">@color/colorAccent</item>

        <!--Maps styles-->
        <item name="android:spinnerItemStyle">
            @style/SpinnerItemStyle
        </item>

        <item name="spinnerDropDownItemStyle">
            @style/SpinnerDropDownItemStyle
        </item>

        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>

    </style>

    <!--Main application theme-->
    <style name="MainTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">#FFFFFF</item>
        <item name="colorPrimaryDark">#00BCD4</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <!--Toolbar Font Style-->
<!--    <style name="toolbarTheme">-->
<!--        <item name="android:fontFamily">@font/poppinsmedium</item>-->
<!--        <item name="colorPrimary">#FFFFFF</item>-->
<!--        <item name="colorPrimaryDark">#00BCD4</item>-->
<!--        <item name="colorAccent">#00DFCA</item>-->
<!--    </style>-->

    <!--Maps Spinner-->
    <style name="SpinnerItemStyle">
        <item name="android:textSize">14sp</item>
        <item name="android:textColor">@android:color/secondary_text_light</item>
    </style>

    <style name="SpinnerDropDownItemStyle">
        <item name="android:textSize">15sp</item>
        <item name="android:gravity">center_vertical</item>
        <item name="android:paddingLeft">8dp</item>
        <item name="android:paddingRight">8dp</item>
        <item name="android:textColor">@android:color/primary_text_light</item>
    </style>

    <!--Maps Switch Theme-->
    <style name="SwitchTheme" parent="AppTheme">
        <item name="colorSwitchThumbNormal">@color/colorPrimary</item>
        <item name="android:colorForeground">@color/colorPrimary</item>
    </style>

</resources>

如前所述,我认为这是工具栏的错误,这就是为什么对styles.xml中的工具栏进行注解的原因
编辑:我发现了这个错误,它在my styles.xml中,忽略了显示noactionbar的部分

zf2sa74q

zf2sa74q1#

你把主题从 Theme.AppCompat.Light.NoActionBar ,这就是为什么你不能为 ActionBar .
如果你想使用默认主题 NoActionBar ,则如果要使用 ActionBar .
尝试设置 ActionBar 对于个人 Activity 你的意图。

相关问题