【发布时间】:2015-08-12 09:22:28
【问题描述】:
我想在我的应用程序中添加一个工具栏而不是操作栏。但是当我将工具栏添加到我的应用程序时,我的应用程序崩溃了,我不知道如何。
这是我的代码。
ToolbarActivity.java
public class ToolbarActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_toolbar);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarsdfs);
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
}
activity_toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbarsdfs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
</LinearLayout>
style.xml
<style name="AppTheme" parent="AppTheme.Base"/>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/color1</item>
<item name="colorPrimaryDark">@color/color2</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
LogCat
08-12 14:31:05.905: E/AndroidRuntime(18413): FATAL EXCEPTION: main
08-12 14:31:05.905: E/AndroidRuntime(18413): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tech.Toolbar/com.tech.toolbar.ToolbarActivity}: java.lang.NullPointerException
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1734)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1569)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:158)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:370)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:701)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.widget.TabHost.setCurrentTab(TabHost.java:373)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:167)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:487)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.view.View.performClick(View.java:2535)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.view.View$PerformClick.run(View.java:9129)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.os.Handler.handleCallback(Handler.java:618)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.os.Handler.dispatchMessage(Handler.java:123)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.os.Looper.loop(SourceFile:351)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.ActivityThread.main(ActivityThread.java:3820)
08-12 14:31:05.905: E/AndroidRuntime(18413): at java.lang.reflect.Method.invokeNative(Native Method)
08-12 14:31:05.905: E/AndroidRuntime(18413): at java.lang.reflect.Method.invoke(Method.java:538)
08-12 14:31:05.905: E/AndroidRuntime(18413): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
08-12 14:31:05.905: E/AndroidRuntime(18413): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
08-12 14:31:05.905: E/AndroidRuntime(18413): at dalvik.system.NativeStart.main(Native Method)
08-12 14:31:05.905: E/AndroidRuntime(18413): Caused by: java.lang.NullPointerException
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.support.v7.internal.app.WindowDecorActionBar.getDecorToolbar(WindowDecorActionBar.java:248)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.support.v7.internal.app.WindowDecorActionBar.init(WindowDecorActionBar.java:201)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.support.v7.internal.app.WindowDecorActionBar.<init>(WindowDecorActionBar.java:176)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.support.v7.app.AppCompatDelegateImplV7.createSupportActionBar(AppCompatDelegateImplV7.java:174)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:90)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.support.v7.app.AppCompatActivity.getSupportActionBar(AppCompatActivity.java:77)
08-12 14:31:05.905: E/AndroidRuntime(18413): at com.tech.toolbar.ToolBarActivity.onCreate(ToolBarctivity.java:12)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
08-12 14:31:05.905: E/AndroidRuntime(18413): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1698)
08-12 14:31:05.905: E/AndroidRuntime(18413): ... 18 more
08-12 14:31:05.920: E/dalvikvm(18413): [DVM] mmap return base = 45e92000
清单
<uses-sdk
android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme"
>
<activity
android:name=".MainActivity"
android:label="Tab"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ToolBarActivity"
android:theme="@style/AppTheme" />
</application>
我已尽一切可能实现我的目标,但无济于事。我的应用最小 SDK 为 10。我正在使用 eclipse Luna 进行开发。
【问题讨论】:
-
为什么工具栏在滚动视图中?同时扩展
AppCompatActivity -
AppCompatActivity如何扩展,在哪里扩展?
-
错误来自 FeedbackActivity 而不是来自 ToolbarActivity -
FeedbackActivity.onCreate(FeedbackActivity.java:12) -
抱歉,FeedbackActivity 和 ToolBarActivity 是同一个活动。现在我编辑了我的问题。请马上回答。 @Ganesh
-
确定错误与工具栏有关?请参阅日志猫。一行是
com.ansari.islamicthings.ToolBarActivity,另一行是com.tech.toolbar.ToolbarActivity,现在是你的活动,你的包名是什么?!您是否尝试过在没有工具栏的情况下开始此活动?你的活动中的第 12 行是什么?
标签: android xml android-actionbar toolbar