ไม่สามารถโหลด AppCompat ActionBar โดยมีข้อผิดพลาดที่ไม่รู้จักใน android studio


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 ของคุณเป็นรุ่นล่าสุดแล้ว
Ramiz Ansari

คำตอบ:


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
ขอบคุณ! ที่ทำมัน BTW สำหรับเรา Android dev newbiew กำลังบอกว่าควรทำการเปลี่ยนแปลงในไฟล์ build.gradle (โมดูล: แอป)
Julian Borrero

2
ฉันเพิ่งเริ่มวันนี้ ฉันเจอปัญหานี้แล้ว คำตอบนี้ขอให้รวบรวมสิ่งที่ฉันไม่มีความคิดเพราะมันไม่ได้อธิบายวิธีการทำ แต่คำตอบโดย tanchap แก้ปัญหา เขา / เธออธิบายอย่างชัดเจนว่าต้องทำอะไร มันเป็นงานง่าย ๆ ที่จะสดชื่นเหมือนฉัน ดังนั้นฉันคิดว่าควรเป็นคำตอบ
Buddhika Ariyaratne

1
ข้อผิดพลาดใหม่สำหรับฉัน! เมื่อฉันตั้งค่าโครงการใหม่ของฉันฉันลืมที่จะยกเลิกการเลือกตัวเลือก "ความเข้ากันได้ย้อนหลัง" (ฉันไม่ต้องการความเข้ากันได้ย้อนหลัง) ฉันสร้างโครงการขึ้นใหม่โดยไม่ถูกตรวจสอบและทั้งหมดนี้ดี!
Doug J. Huras

7
เพียงแค่อยากรู้อยากเห็น: เราจะหาวิธีเช่นนี้ได้อย่างไร ฉันจะไม่เดาเลย ...
BareMetalCoder

3
ขอบคุณ แต่ทำไมข้อผิดพลาดนี้ยังคงมีอยู่ในปี 2018 สำหรับมือใหม่ Android ฉันไม่สามารถสร้างโครงการ "Hello World" ได้เนื่องจากข้อผิดพลาดนี้
เซียรีน

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
1 มีนาคม 2018 ยืนยันว่าสิ่งนี้ได้แก้ไขปัญหาของฉันแล้ว
John Riselvato

เพียงแค่ทราบว่าถ้ามันไม่ทำงานหลังจากเพิ่ม "ฐาน" ใน AppTheme ของคุณเพียงแค่ไปที่ตัวเลือกชุดรูปแบบจากด้านบนของตัวอย่างเค้าโครงของคุณคลิกที่ตัวเลือกชุดรูปแบบ Menifest จากด้านซ้ายแล้วเลือก AppTheme ของคุณ มันจะรีเฟรชเลย์เอาต์โดยอัตโนมัติ
เลด Saif

4
มันก็ใช้ได้กับฉันเช่นกัน ไม่มีใครรู้ว่าทำไมสิ่งนี้จึงเป็นสิ่งจำเป็น ฉันอยู่ห่างจาก Android มาสองสามปีแล้วและไม่อยากจะเชื่อเลยว่าต้องทำเงินเท่าไหร่เพื่อทำโปรเจ็กต์ง่าย ๆ (ซึ่งรวมถึงการพยายามสร้าง / เรียกใช้ตัวอย่างโครงการบางส่วนที่ให้บริการโดย Android Studio)
pdoherty926

2
16 กรกฎาคม 2018 ใช้ได้กับฉันด้วย 'com.android.support:appcompat-v7:28.0.0-alpha3'
CoolMind

26

ฉบับเดือนมิถุนายน 2561 ได้รับการแก้ไขโดยใช้แอปขนาดกะทัดรัดรุ่นอื่น ใช้รหัสเหล่านี้บนการอ้างอิงโครงการของคุณ ...

ใน build.gradle (โมดูล: แอป) เพิ่มการพึ่งพานี้

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

รหัสที่มีความสุข ... :)


4
มันแตกอีกครั้งในรุ่นเบต้า :(
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">

โซลูชันทั้งสองทำงาน


Happy coding :)
Muhammad Azam

6

เปิดโหมดดูตัวอย่าง

ไปที่ลิงก์ด้านล่างเพื่อแก้ไขปัญหา

แก้ไข - ปัญหาการแสดงผลไม่พบคลาสต่อไปนี้: android.support.v7.internal

ไปที่ appTheme ----> เลือก Holo Theme ---> refresh

https://www.youtube.com/watch?v=4MxBnwpcUjA


1
เพียงแค่เปลี่ยนชุดรูปแบบจากบานหน้าต่างแสดงตัวอย่างเป็นชุดรูปแบบอื่นที่ไม่ใช่ AppTheme
Qasim

มันใช้งานได้สำหรับฉันเพียงแค่เปลี่ยนธีมอื่นที่ไม่ใช่ AppTheme
gIrL

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 (โมดูล: แอป) แก้ไขเครื่องหมายสีแดงของฉันใน Android Studio 3.1.3


การเขียนโค้ดที่มีความสุขมาก
Kashif

มีวิธีในการเปลี่ยนแปลงสิ่งนี้ในระดับแอปหรือไม่? เพื่อให้ไม่จำเป็นต้องทำซ้ำสำหรับทุกโครงการที่ฉันมี
TheGeeko61

4

ใน android 3.0.0 canary 6 คุณต้องเปลี่ยน 2.6.0 beta2 เป็น 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"

และเข้าไปในไฟล์ build.gradle ที่อยู่ภายในรูทของ proyect:

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

0

ฉันก็ประสบปัญหาเดียวกัน ไม่มีอะไรที่เหมือนกับการเปลี่ยนชุดรูปแบบจากหน้าต่างแสดงตัวอย่างเค้าโครงช่วยฉัน

สิ่งที่ช่วยฉันเพิ่มสิ่งนี้Appthemeในstyles.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(จากหน้าต่างโครงการ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.