我正在尝试做一个小项目,在编译整个应用程序之前,所有这些操作栏都工作了,但是编译之后这个错误出现了。
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的部分
1条答案
按热度按时间zf2sa74q1#
你把主题从
Theme.AppCompat.Light.NoActionBar
,这就是为什么你不能为ActionBar
.如果你想使用默认主题
NoActionBar
,则如果要使用ActionBar
.尝试设置
ActionBar
对于个人Activity
你的意图。