无法在Android Studio中加载未知错误的AppCompat ActionBar


153

以下是我的xml文件。在预览中,有两个错误“无法加载具有未知错误的AppCompat ActionBar”和“无法实例化多个类”。如何运行该应用程序。但是该应用程序崩溃了,并且在Logcat中未显示任何错误。

这是我的预览屏幕截图在此处输入图片说明

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">


    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="506dp" />

    <LinearLayout
        android:id="@+id/layout_main"
        android:orientation="vertical"
        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"
        android:weightSum="1"
        tools:context=".Activity.MainActivity">


    <LinearLayout
        android:id="@+id/main_layout"
        android:orientation="vertical"
        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"
        android:layout_weight="0.7"
        tools:context=".Activity.MainActivity">

        <!-- our tablayout to display tabs  -->
        <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="50dp"
            app:tabMode="scrollable"
            app:tabSelectedTextColor="@color/colorBlack"
            app:tabTextColor="@color/colorWhite"
            android:background="@color/colorOran"
            android:minHeight="?attr/actionBarSize"
            />

        <!-- View pager to swipe views -->
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </LinearLayout>

        <LinearLayout
            android:id="@+id/ll"
            android:layout_width="match_parent"
            android:layout_height="64dp"
            android:layout_alignParentBottom="true"
            android:background="#ffffff"
            android:orientation="horizontal"
            android:layout_weight="0.3"
            android:weightSum="4"
            tools:layout_editor_absoluteX="8dp"
            android:layout_marginBottom="8dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true">

            <ImageView
                android:id="@+id/btn_home"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:src="@drawable/ta_home_icon"
                android:background="@color/colorOran"
                android:layout_marginRight="1dp"
                android:scaleType="fitCenter"/>

            <ImageView
                android:id="@+id/btn_new"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:src="@drawable/ta_todaydeals_icon"
                android:background="@color/colorOran"
                android:layout_marginRight="1dp"
                android:scaleType="fitCenter"/>

            <ImageView
                android:id="@+id/btn_fav"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:src="@drawable/ta_fav_icon"
                android:background="@color/colorOran"
                android:layout_marginRight="1dp"
                android:scaleType="fitCenter"/>

            <ImageView
                android:id="@+id/btn_auth"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:src="@drawable/ta_franchie_icon"
                android:background="@color/colorOran"
                android:scaleType="fitCenter"
                android:layout_marginRight="1dp"
                />

        </LinearLayout>

    </LinearLayout>


    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />


</android.support.v4.widget.DrawerLayout>

以下是appbar_main

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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="com.jeyashri.kitchen.jeyashriskitchen.Activity.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">


        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorOran"
            app:popupTheme="@style/AppTheme.PopupOverlay">

            <ImageView
                android:id="@+id/app_logo"
                android:layout_width="80dp"
                android:layout_height="match_parent"
                android:src="@drawable/img"/>

            <ImageView
                android:id="@+id/btn_social"
                android:layout_width="75dp"
                android:layout_height="35dp"
                android:layout_marginRight="1dp"
                android:src="@drawable/share_icon" />

    </android.support.v7.widget.Toolbar>

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />


</android.support.design.widget.CoordinatorLayout>

尝试更改Android版本。
chetan mekha

尝试更改版本。.无济于事
Siva

有关不更改appcompat库的解决方案,请参阅:stackoverflow.com/questions/44223687#45002903
Mr-IDE


确保您的Gradle版本是最新的。
拉米兹·安萨里

Answers:


323

该问题的解决方案取决于您使用的Android支持库的版本:

支持库 26.0.0-beta2

此android支持库版本有一个导致上述问题的错误

在您的Gradle构建文件中使用:

compile 'com.android.support:appcompat-v7:26.0.0'

与:

buildToolsVersion '26.0.0' 

classpath 'com.android.tools.build:gradle:3.0.0-alpha8'

现在一切都应该正常工作。


库版本28(测试版)

这些新版本似乎再次遭受类似的困难。

在您res/values/styles.xml修改AppTheme样式时

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

(请注意已添加Base.

或者降级库,直到问题解决:

implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'

23
谢谢!做到了。顺便说一句,Android开发者newbiew表示应该对build.gradle(Module:app)文件进行更改
朱利安·博雷罗

2
我今天刚开始。我遇到了这个问题。这个答案要求编译某些东西,我不知道,因为它没有解释如何做。但是tanchap的答案解决了问题。他/她清楚地说明了该怎么做。对于像我这样的新生来说,这是一个简单的任务。因此,我认为这应该是答案。
Buddhika Ariyaratne”,

1
Newb错误对我来说!设置新项目时,我忘了取消选中“向后兼容”选项(我不需要向后兼容)。我未选中就重新创建了项目,一切都很好!
Doug J. Huras '18

7
只是好奇:如何解决这样的问题?我永远都不会猜到...
BareMetalCoder

3
谢谢,但是为什么这个bug在2018年仍然存在?对于Android新手,由于此错误,我无法创建“ Hello World”项目。
Searene '18年

276

在此网站上找到它,对我有效。从以下位置修改/res/values/styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>

至:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
</style>

21
您能否添加一个解释为何有效?它将帮助将来重新审视此问题的人们。
Thomas Smyth

13
2018年3月1日确认此问题已解决。
John Riselvato

请注意,如果在AppTheme中添加“ Base”后仍然无法使用,则只需从布局预览顶部转到“主题选项”,单击“左侧的清单主题”选项,然后选择您的AppTheme。它将自动刷新布局。
哈立德·赛义夫

4
这对我也有用。有人知道为什么这是必要的吗?我已经离开Android几年了,我不敢相信要启动和运行一个简单的项目我需要做多少工作。(这包括尝试构建/运行由Android Studio提供的一些示例项目。)
pdoherty926

2
2018年7月16日,对我来说也适用于'com.android.support:appcompat-v7:28.0.0-alpha3'。
CoolMind

26

2018年6月,使用其他appcompact版本修复了该问题。将这些代码用于您的项目依赖项...

在build.gradle(Module:app)中添加此依赖项

implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'

快乐编码... :)


4
它再次在beta中被打破:(
nifCody

17

方法1:

定位 /res/values/styles.xml

更改

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

方法2:

修改模板文件(定位:android-studio/plugins/android/lib/templates/gradle-projects/NewAndroidModule/root/res/values/styles.xml.ftl

更改

backwardsCompatibility!true>Theme.AppCompat<#else><#if

backwardsCompatibility!true>Base.Theme.AppCompat<#else><#if

在YouTube上观看解决方案

解


17

我也遇到了这个问题,并通过res / values / styles.xml中的更改行解决了

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

  1. <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
  2. <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

两种解决方案都有效


快乐的编码:)
穆罕默德·阿扎姆


6

Android Studio 3.1.3中面临相同的问题

只需转到style.xml文件

并替换主题名称

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

然后清理重建项目,这将解决错误。


5

替换 implementation 'com.android.support:appcompat-v7:28.0.0-beta01'

implementation 'com.android.support:appcompat-v7:28.0.0-alpha1' 

在build.gradle(Module:app)中。它在Android Studio 3.1.3中修复了我的红色标记



有没有办法在应用程序级别更改此设置?这样就不必为我拥有的每个项目都复制此代码。
TheGeeko61 '18

4

在android 3.0.0 canary 6中,您必须将所有2.6.0 beta2更改为beta1(appcompat,design,supportvector)


4

试试这个:

只是改变:

compile 'com.android.support:appcompat-v7:26.0.0-beta2'

至:

compile 'com.android.support:appcompat-v7:26.0.0-beta1'

参考


3

对我来说这是有效的,我在Style.xml中进行了以下更改

更改以下代码:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

2

使用这个:

implementation 'com.android.support:appcompat-v7:26.0.0-beta1'
implementation 'com.android.support:design:26.0.0-beta1'

代替

implementation 'com.android.support:appcompat-v7:26.0.0-beta2'
implementation 'com.android.support:design:26.0.0-beta2'

就我而言,它消除了渲染问题。


1

这是解决问题的最低配置。

用:

dependencies {
    ...
    implementation 'com.android.support:appcompat-v7:26.1.0'
    ...
}

与:

 compileSdkVersion 26
 buildToolsVersion "26.0.1"

并放入位于proyect根目录下的build.gradle文件中:

buildscript {
    ...
    ....
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        ...
        ...
    }
}

0

我也面临着同样的问题。从“布局预览”窗口更改主题没有任何帮助。

什么帮助我被加入这Appthemestyles.xml

dependencies {
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'
}

仍然给我一个错误:“无法解析符号小部件... coordinatorLayout”。然后,我更新build.gradle(app)了:

dependencies {
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'
}

还有一件事:

compileSdkVersion 27
targetSdkVersion 27

0

我也有这个问题 implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'

对我来说,解决方案是File->-> Invalidate Caches / Restart-> Invalidate-> Close Project->从项目窗口中删除项目-> Open Project(从项目窗口中)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.