我在我的应用中使用工具栏。当我试图使用工具栏应用程序崩溃。
" java.lang.NoSuchFieldError:android.support.v7.appcompat.R $ styleable.ActionBarWindow " 即可。
我经历了stackoverflow的答案,但没有一个能解决我的问题。
这是我的代码:
app_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green_background_color">
</android.support.v7.widget.Toolbar>
活动主题:
<style name="NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
</style>
宣言声明:
<activity
android:name="in.chabu.activities.SignUpActivity"
android:label="@string/title_activity_sign_up"
android:theme="@style/NoActionBar">
</activity>
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="in.chabu.activities.SignUpActivity" >
<include
android:id="@+id/tool_bar"
layout="@layout/app_bar" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tool_bar"
android:text="@string/hello_world" />
</RelativeLayout>
活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
}
我正在使用Eclipse IDE
。
答案 0 :(得分:1)
修改你的风格如下:
<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
答案 1 :(得分:0)
试试这个......
<强> toolbar_main.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
android:id="@+id/toolbar" <!-- ID of toolbar -->
android:minHeight="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<强> activity_main.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:orientation="vertical">
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/toolbar_main" />
</LinearLayout>
<强> MainActivity.java 强>
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
}
并且您可以在不使用NOACTIONBAR的任何样式的情况下执行此操作。
答案 2 :(得分:0)
<强> MainActivity 强>
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
<强>式强>
<style name="DevenTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/my_primary_color</item>
<item name="colorPrimaryDark">@color/my_primary_dark_color</item>
<item name="colorAccent">@color/my_accent_color</item>
<item name="colorControlNormal">@color/my_control_normal_color</item>
<item name="colorControlActivated">@color/my_control_activated_color</item>
<item name="colorControlHighlight">@color/my_control_highlight_color</item>
</style>
<强>清单强>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/DevenTheme" >
<强> XML 强>
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"/>
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="100dp"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:paddingTop="40dp"
android:elevation="5dp" />
在样式中,您可以跳过所有颜色,因为那些用于材料设计的颜色。
答案 3 :(得分:0)
奇怪,但 构建 appCompact-v7-lib
和My project
解决了这个问题。