ไม่สามารถแก้ไขสัญลักษณ์ 'AppCompatActivity'


212

ฉันเพิ่งลองใช้ Android Studio เราได้สร้างโครงการที่ว่างเปล่าและพยายามที่จะสร้างที่ขยายActivity AppCompatActivityโชคร้าย Android Studio "บอกว่า" มัน

ไม่สามารถแก้ไขสัญลักษณ์ 'AppCompatActivity'

ฉัน compile "com.android.support:appcompat-v7:22.0.+"อยู่ในรายการพึ่งพาของโมดูล "แอพ" ของฉันและสร้างโครงการขึ้นใหม่หลายครั้ง ActionBarActivityแต่ฉันเท่านั้นที่สามารถใช้ ผมทำอะไรผิดหรือเปล่า?


คุณใช้เวอร์ชั่นบิลด์ใช่มั้ย sdk ของคุณทันสมัยหรือไม่?
นักพูดผี

5
@Lingviston คุณไม่ได้ใช้เวอร์ชั่นที่ถูกต้อง คุณควรใช้com.android.support:appcompat-v7:22.1.0
damson

2
ในตอนนั้นไม่มีรุ่นดังกล่าว
Lingviston

แต่ตอนนี้มันมีและมันแก้ปัญหาได้แล้ว :)
JY2k

คำตอบ:


350

เพิ่มเติมเล็กน้อยสำหรับคำตอบอื่น ๆ ที่นี่สำหรับทุกคนที่มีข้อผิดพลาดเดียวกันในขณะที่ใช้เวอร์ชัน lib ที่ถูกต้องและคลาสที่เหมาะสม

เมื่อฉันอัพเกรดเป็น

appcompat-v7:22.1.0

ซึ่งActionBarActivityเลิกใช้แล้วและว่างเปล่าและAppCompatActivtyเป็นวิธีที่จะไปเนื่องจากความผิดพลาดบางอย่างใน Android Studio มันไม่ได้ค่อนข้างรับการเปลี่ยนแปลงรุ่น

เช่นแม้ว่า Gradle จะทำงานโดยไม่มีข้อผิดพลาดตัว IDE เองก็ยังพูดอยู่ Cannot resolve symbol 'AppCompatActivity'(และมันก็ไม่สามารถหาได้จากการCtrl+Nค้นหา)

ฉันดูใน.idea/librariesโฟลเดอร์และสังเกตว่าไม่มี metafile ที่เหมาะสมสำหรับ lib เวอร์ชันใหม่

ดังนั้นการใช้ไฟล์ที่เชื่อถือได้เก่า - > ตรวจสอบแคช / รีสตาร์ทไม่ถูกต้อง ลองใช้สิ่งนี้เสมอเมื่อคุณรู้สึกว่ามีอะไรผิดปกติอย่างน่าอัศจรรย์กับ Android Studio จากนั้นปิดใช้งานโหมดออฟไลน์และซิงค์


2
ไม่ได้ผลสำหรับฉันเช่นกันทุกครั้งที่ฉันอัปเกรดแอปคอมแพคฉันมีปัญหามากมาย
3c71

สำหรับฉันข้อผิดพลาดนี้โผล่ขึ้นมาเมื่ออัปเดตเป็น Android Studio 2.0 - การล้างแคชและการเริ่มต้นใหม่ตามที่ระบุไว้ข้างต้นทำงานได้อย่างสมบูรณ์แบบ!
ColossalChris

ฉันมีcompile 'com.android.support:appcompat-v7:23.3.0'อยู่แล้วในbuild.gradle ... แต่ยังได้รับข้อผิดพลาด
dsdsdsdsd

3
หากไม่ได้ผลให้ลองตัวนี้ลองใช้งานได้กับฉัน: stackoverflow.com/a/36641765/3758439
George

เหมือนกันใน IntelliJ IDE
A-Sharabiani

163

หากวิธีการแบบ soft ผ่านไฟล์ gradle / "Invalidate caches" และเครื่องมือ IDE อื่น ๆ ไม่ทำงานให้ใช้วิธีที่ยาก:

  1. ออกจาก Android Studio
  2. นำทางในโครงการของคุณไปยัง.ideaโฟลเดอร์
  3. เพียงเปลี่ยนชื่อlibrariesโฟลเดอร์
  4. รีสตาร์ท Android Studio ตอนนี้มันควรจะสร้างlibrariesโฟลเดอร์และทำงานอีกครั้ง

สิ่งนี้ใช้ได้สำหรับฉันใน

Android Studio 3.1.2
Build #AI-173.4720617, built on April 13, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

Shahbaz Aliยืนยันว่ามันใช้งานได้เช่นกัน

Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

moujibยืนยันว่ามันใช้งานได้บน Android Studio 3.2.1


Ty สำหรับการแก้ไข! นอกจากนี้ฉันต้องการทราบว่าผู้ใช้ทุกคนที่นี่ใช้เวอร์ชั่น PC หรือ iOS เวอร์ชันของ Android Studio หรือไม่ ฉันมีเพื่อนนักพัฒนาซอฟต์แวร์บางคนที่ไม่เคยมีปัญหาเหล่านี้ใน iOS ฉันมีปัญหามากมายในพีซี ไม่แน่ใจว่าฉันพยายามล้าง / สร้าง / ทำให้แคชใช้ไม่ได้หลายครั้ง ...

Shahbaz Ali และฉันใช้รุ่น Linux เท่านั้น moujib ให้ความเห็นว่าโซลูชั่นนี้ใช้งานได้ใน 3.2.1
DBX12

70

วันนี้ (22 เมษายน) คุณสามารถใช้รีลีสใหม่AppCompatActivityกับไลบรารีการสนับสนุน v 22.1.0

เพียงแค่เปลี่ยนการพึ่งพาของคุณ:

compile "com.android.support:appcompat-v7:22.1.0"

ที่นี่คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับคลาสใหม่นี้


7
อืมฉันกำลังใช้รุ่นที่สูงกว่า แต่ยังคงประสบปัญหาอยู่compile 'com.android.support:appcompat-v7:23.1.1'
behelit

31

มันง่ายเกินไปมีขั้นตอนที่คุณต้องทำตาม

สตูดิโอ Android 1 ทางออก

2-Go ไปยังไดเรกทอรีโครงการของคุณ

3- บางอย่างเช่นนี้ในกรณีของฉัน (F> Android-> YourProjectName ->. idea)

4) - ลบโฟลเดอร์ไลบรารีที่มีอยู่ในโฟลเดอร์. ada

5) - เริ่มต้นสตูดิโอ Android ของคุณ และปัญหาของคุณได้รับการแก้ไข


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

28

ฉันได้รับการแก้ไขโดยไปที่build.gradleไฟล์และในการอ้างอิงappcompatหนึ่งสิ่งที่รวบรวม'com.android.support:appcompat-v7:XX.X.X'

เปลี่ยนมันเพื่อรวบรวม 'com.android.support:appcompat-v7:XX.X.+'

จากนั้นคลิกที่ซิงค์ ทุกเส้นสีแดงไก่เขี่ยควรไปถ้าทุกอย่างในรหัสของคุณถูกต้อง


7
+1, OMG ใช้งานได้สำหรับฉัน :) BTW +เครื่องหมายสำหรับHey Gradle ถ้ามีเวอร์ชั่นใหม่ของรีลีสเดียวกันก็ใช้ประโยชน์ได้สำหรับตัวคุณเอง :) ฉันกำลังใช้งานcom.android.support:appcompat-v7:25.3.1อยู่ตอนนี้เป็นการหลอกลวง: com.android.support:appcompat-v7:25.3.+แม้ว่า AS จะเตือนฉัน: หลีกเลี่ยงการใช้ + ในหมายเลขรุ่น; สามารถนำไปสู่การสร้างที่คาดเดาไม่ได้และไม่สามารถทำ
ซ้ำได้


13

ฉันได้รับCannot resolve symbolข้อผิดพลาดสำหรับ AppCompatActivity และคลาสและวิธีการอื่น ๆ หลังจากอัปเดต Android Studio จาก 2.2.3 เป็น 2.3 อัปเดตปลั๊กอิน Android Gradle เป็น 2.3.0 และอัปเดต Gradle เป็น 3.3

File -> Invalidate Caches / Restart ไม่สามารถแก้ไขปัญหาได้

Preferences -> Build, Execution, Deployment -> Gradleแสดงให้เห็นว่าUse local gradle distributionเลือกบ้าน Gradle: การประยุกต์ใช้ / / Android Studio.app/Contents/gradle/gradle-2.14.1 และคำเตือนที่แสดงบอกว่าสถานที่ตั้ง gradle ไม่ถูกต้อง

Use default gradle wrapper (recommended)การแก้ไขปัญหาโดยการเลือก
อาจเป็นเพียงการชี้ไปยังตำแหน่งการจัดจำหน่ายในพื้นที่ใหม่ก็สามารถใช้ได้เช่นกัน


11

ไม่สามารถแก้ไขสัญลักษณ์ปัญหา AppCompatActivity

ทำขั้นตอนง่าย ๆ เพื่อแก้ไขปัญหา

i) ออกจากสตูดิโอ Android

ii) ไปที่ไดเรกทอรีโครงการของคุณ

iii) ค้นหาโฟลเดอร์ . ideaในไดเรกทอรีโครงการของคุณ

iv) ลบโฟลเดอร์ . idea

v) รีสตาร์ทสตูดิโอ Android ของคุณ

vi) ปัญหาจะได้รับการแก้ไข


หากคุณเข้าไปในโฟลเดอร์ .idea และเปลี่ยนชื่อโฟลเดอร์เป็น "libraries" เป็นสิ่งที่แตกต่างออกไปเคล็ดลับก็ใช้ได้เช่นกัน หากมีบางอย่างผิดปกติคุณจะต้องย้อนกลับไปและเปลี่ยนชื่อโฟลเดอร์ไลบรารีกลับเป็นชื่อเดิมและลองอย่างอื่นแทนที่จะพยายามกู้คืนโฟลเดอร์. aide ทั้งหมด

8

ลองสิ่งนี้ ใน Android Studio หลังจากทำการอ้างอิงใน build.gradle ไปที่ Build -> Clean project

มันใช้งานได้สำหรับฉัน


7

นั่นเป็นบ้าจริงฉันพยายามทุกอย่างซิงค์กับไฟล์ Gradle, โมฆะและรีสตาร์ทสตูดิโอ Android ปัญหายังคงอยู่ ทางเลือกสุดท้ายคือการลบ. aaa /โฟลเดอร์ folder และมันทำงานได้ดี


6

คุณสามารถใช้ AppCompatActivity appcompat-v7 ใหม่: 22.1. + เพียงเพิ่มสิ่งนี้ลงใน gradle ของคุณ:

รวบรวม 'com.android.support:appcompat-v7:22.1.1'


6

สำหรับฉันปัญหาได้รับการแก้ไขเมื่อฉันอัปเดต appcompact v7 เป็นรุ่นล่าสุด ..

รวบรวม 'com.android.support:appcompat-v7:25.3.0'

หวังว่ามันจะช่วย ... :)


6

ดังนั้นเพื่อนร่วมงานของฉันผลักของพวกเขาlocal.propertiesซึ่งทำลายทุกอย่าง ฉันคัดลอกเส้นทาง sdk ของฉันจากแอพอื่นแล้ว:

File -> Sync Project with Gradle Files

5

ฉันพบปัญหาเดียวกันกับ Android SDK 23 ในขณะที่พัฒนาบนเครื่อง Mac OS X Yosemite ปรากฎว่าฉันไม่มี Java SDK 7

เมื่อฉันติดตั้ง Java SDK 7 และชี้ SDK จากกับ Android Studio ไปยัง SDK ใหม่ทุกอย่างทำงานได้สำหรับฉัน

นี่คือขั้นตอนที่ฉันปฏิบัติตาม:

1) การปิดระบบ Android SDK

2) ติดตั้ง Java SDK สำหรับ Mac OS X จากhttp://www.oracle.com/technetwork/java/javase/downloads/index.html

3) เริ่ม Android SDK และชี้ SDK สำหรับโครงการนี้สู่ 1.7 Java SDK ใหม่โดยไปที่ไฟล์ -> โครงสร้างโครงการ -> ตำแหน่ง JDK

4) รีสตาร์ท Android Studio

หวังว่าความช่วยเหลือนี้



3

ไม่แก้ไขปัญหาของฉันด้านล่าง

  • รีสตาร์ท Android
  • ไฟล์ >> ซิงค์โครงการที่มีไฟล์ Gradle
  • สร้าง >> ทำความสะอาดโครงการ
  • สร้าง >> สร้างโครงการใหม่
  • ไฟล์ >> ทำให้แคช / รีสตาร์ทไม่ถูกต้อง

แต่ฉันแก้ไขได้โดยอัปเดตเวอร์ชันของแอปคอมพ์ & การออกแบบการอ้างอิงเป็นเวอร์ชันล่าสุดโดยทำดังนี้: ไปที่build.grade (โมดูล: แอพ) >> ส่วนการอ้างอิงแล้วกดALT + ENTER ทั้งแอพคอมแพ็ค & การออกแบบที่พึ่งพา รุ่นที่แสดงในกรณีของฉันคือ 24.2.1 ตามที่แสดงในภาพ ป้อนคำอธิบายรูปภาพที่นี่


3

ฉันอัปเดต Gradle 2.3.3 เป็น 4.4 และมีข้อผิดพลาดใน AppCompatActivity และ Cardview ฉันพยายามทำความสะอาดโครงการและสร้างโครงการใหม่ มันไม่ทำงานจากนั้นฉันไปที่โฟลเดอร์โครงการ -> .idea -> สร้างการสำรองข้อมูลของโฟลเดอร์ไลบรารีและลบออก -> จากนั้นสร้างโครงการใหม่ที่แก้ไขปัญหาของฉัน


3

ให้ไปทีละขั้นตอน: ทำความสะอาดโครงการก่อนโดยใช้

Build-> ทำความสะอาด

หากวิธีนี้ไม่ได้ผลให้ใช้ขั้นตอนที่สองของคุณ

ไฟล์> ทำให้แคช / รีสตาร์ทไม่ถูกต้อง ...

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

.idea

คุณสามารถเปิดโครงการได้อีกครั้ง


2

หลังจากอัปเกรดเป็นไลบรารีการสนับสนุนล่าสุดฉันต้องอัปเกรดเป็นเวอร์ชันล่าสุดของ Android studio (เบต้า) และรุ่น gradle ก่อนที่ IDE จะรู้จัก AppCompatActivity อีกครั้ง (การทำให้แคชใช้งานไม่ได้และรีสตาร์ทไม่ได้หลอก)


2

เพิ่มการพึ่งพานี้ใน project build .gradle

ทำตามตัวอย่างด้านล่าง

dependencies {

    compile 'com.android.support:appcompat-v7:22.1.0'
}

ฉันใช้:22.0.0และไม่สามารถหาAppCompatActivityชั้นเรียนได้ 22.1.0ฉันมีที่จะตั้งอย่างน้อย ขอบคุณ
haxpor

2

วิธีที่ง่ายที่สุด

  • เปิดระดับแอปbuild.gradleและลบappcompact-v7 การพึ่งพา & การซิงค์
  • เพิ่มการพึ่งพาอีกครั้ง & ซิงค์

เกิดข้อผิดพลาด!

ก่อน

ก่อน

หลังจาก

หลังจาก


2

เมื่อคุณเพิ่มการรองรับ AndroidX ในไฟล์ Gradle.properties เช่น

android.useAndroidX=true
android.enableJetifier=true

หากคุณใช้รุ่น Gradle มากกว่า 3.2 การพึ่งพา Appcompat แบบเดิมเช่น

implementation 'com.android.support:appcompat-v7:27.1.1

ไม่เคยทำงาน แทนที่การพึ่งพานี้ด้วย:

implementation 'androidx.appcompat:appcompat:1.1.0'

นอกจากนี้ให้เปลี่ยนการนำเข้า AppCompatActivity ในไฟล์คลาสของคุณจากสิ่งนี้:

import android.support.v7.app.AppCompatActivity;

สำหรับสิ่งนี้:

import androidx.appcompat.app.AppCompatActivity;

เสร็จสิ้น


1

คุณต้องทำการเปลี่ยนแปลงบางอย่างในไฟล์แอป Gradle ของคุณโดยเพิ่มการพึ่งพาบางอย่าง

รวบรวม "com.android.support:appcompat-v7:XX:YY:ZZ"

ในขณะที่ XX: YY: ZZ เป็นรหัสเวอร์ชั่นที่คุณใช้ในไฟล์ gradle ของคุณมิฉะนั้นหากคุณตั้งรุ่นนี้ต่ำกว่าหรือสูงกว่าที่คุณใช้อยู่แอปของคุณจะพบปัญหาบางอย่างเช่นมันจะล้มเหลวในบางครั้ง


1

ฉันเพิ่งอัปเดตสตูดิโอ Android ของฉันจากรุ่น 2.3.2 เป็น 3.1.2 และข้อผิดพลาดนี้เกิดขึ้น

ฉันล้างโปรเจ็กต์สร้างโปรเจ็กต์ใหม่ทำให้แคช / รีสตาร์ทไม่ถูกต้อง แต่ไม่มีอะไรทำงาน

ฉันแก้ไขข้อผิดพลาดนี้โดยอัปเดตไลบรารีของ appcompat

คอมไพล์ 'com.android.support:appcompat-v7:23.4.0'

ถึง

รวบรวม 'com.android.support:appcompat-v7:25.1.1'

ในแอพไฟล์ build.gradle


1

หากการทำให้แคชใช้ไม่ได้ผลให้ปิดโครงการแล้วเปิดใหม่ ขั้นตอน:

  • ไฟล์> ปิดโครงการ
  • ลบโครงการออกจากรายการโครงการเริ่มต้น
  • ปิด Android Studio
  • เปิด Android Studio
  • เปิดโครงการที่มีอยู่กับโครงการนี้

0

สำหรับฉันปัญหาได้รับการแก้ไขเมื่อฉันอัปเดตเวอร์ชันการสร้าง Gradle ไม่รู้ทำไม


0

ฉันจะบอกคุณว่าฉันแก้ไขปัญหานี้ใน eclipse ได้อย่างไร ดาวน์โหลดไฟล์ zip จากลิงค์นี้ https://github.com/dandar3/android-support-v7-appcompatจากนั้นแตกไฟล์นี้เปิดโครงการในโฟลเดอร์ lib คุณจะเห็นไฟล์ jar หนึ่งไฟล์ชื่อ "android-support-v7-appcompat" เพิ่มไฟล์ jar นี้ลงใน โครงการของคุณ แค่นั้นแหละ.ป้อนคำอธิบายรูปภาพที่นี่


0

นี่อาจเป็นความแตกต่างของเวอร์ชันในระดับแอปที่ตรวจสอบได้หนึ่งครั้งแล้วสร้างใหม่


0

สำหรับฉันทำงานไม่มีใครแก้ปัญหา แต่ฉันพบว่าห้องสมุดทั้งหมดของห้องสมุดสนับสนุนหายไปจากห้องสมุดภายนอกของฉัน และในโครงการอื่น ๆ AppCompatActivity ได้รับการแก้ไขโดยไม่มีปัญหา

สำหรับฉันมันทำงานเพื่อสร้างโครงการใหม่และคัดลอกเนื้อหาทั้งหมดของโฟลเดอร์ src เก่าไปยังโครงการใหม่

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


0

ด้วยการพยายามหาวิธีที่นุ่มนวลใช้งานไม่ได้ให้ใช้วิธีที่ยาก: ออกจากหน้าจอ Android Studio ปัจจุบันและกลับไปที่โปรเจ็กต์ของคุณเป็นโฟลเดอร์. aa เปลี่ยนชื่อไลบรารี -> โฟลเดอร์ lib_pre

รีสตาร์ท Android Studio ตอนนี้มันจะสร้างโฟลเดอร์ไลบรารีและทำงานอีกครั้งอย่างราบรื่น Android Studio 3.1.3

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