java.lang.NoSuchFieldError:android.support.v7.appcompat.R $ styleable.ActionBarWindow

时间:2015-04-04 05:39:03

标签: android android-appcompat

我在我的应用中使用工具栏。当我试图使用工具栏应用程序崩溃。

" 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

4 个答案:

答案 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-libMy project解决了这个问题。