android - 我的应用程序在创建 setSupportActionBar( ) 方法时崩溃
问题描述
我正在尝试在我的 Activity 上创建一个自定义工具栏,但在我启动应用程序时它崩溃了我为 setSupportActionBar 编写的代码如下:
工具栏工具栏 = findViewById(R.id.toolbar);
setSupportActionBar(工具栏);
它要求创建 setSupportActionBar 的方法,并且出现以下错误
D:\AndriodSDK\LcitNewDemo\app\src\main\java\com\lcit\lcitnewdemo\SetActivity.java:23: 错误:不兼容的类型:android.widget.Toolbar 无法转换为 androidx.appcompat.widget.Toolbar setSupportActionBar(工具栏);
当我尝试创建 setSupportActionBar() 方法时,它在 Logcat 中显示此错误,我在下面提到过
这是一个Logcat
--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lcit.lcitnewdemo, PID: 4372
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.lcit.lcitnewdemo/com.lcit.lcitnewdemo.SetActivity}:
java.lang.ClassCastException: androidx.appcompat.widget.Toolbar cannot be cast to
android.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3356)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
at
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks
(TransactionExecutor.java:135)
at
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
Caused by: java.lang.ClassCastException: androidx.appcompat.widget.Toolbar cannot
be cast to android.widget.Toolbar
at com.lcit.lcitnewdemo.SetActivity.onCreate(SetActivity.java:22)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Activity.performCreate(Activity.java:7973)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3329)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
at
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.
java:83)
at
android.app.servertransaction.TransactionExecutor.executeCallbacks
(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute
(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run
(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
I/Process: Sending signal. PID: 4372 SIG: 9
解决方案
如果您使用的是“androidx.appcompat.widget.Toolbar”,请在您的 xml 中导入
“导入 androidx.appcompat.widget.Toolbar”
同样,如果您使用的是 android.support.v7.widget.Toolbar 然后导入您的 java 文件
“导入android.support.v7.widget.Toolbar;”
推荐阅读
- matlab - 如何在 Matlab 中按间隔对 3d 矩阵行求和?
- javascript - 在 typeahead selected 事件函数被调用多次时,它应该只调用一次
- mysql - Unknown authentication method error while using wordpress and mysql docker images
- azure - 未找到 Azure Dev Ops url 的 Microsoft appcenter 服务 url
- javascript - 问题重新加载包含 javascript 和 java 代码的 DIV
- asp.net-mvc-5 - 部分视图更新后显示错误数据(asp.net MVC5)
- c++ - 如何设置函数参数以取回填充了从文件中读取的值的二维向量?
- python - SymInitialize python
- android - 多模块清洁架构项目:使 Koin 设置反映正确的 gradle 依赖关系
- google-chrome - Chromebook 自助服务终端模式,禁用切换到 ChromeOS