Trình biên dịch nội tuyến Android Studio hiển thị lỗi màu đỏ, nhưng trình biên dịch với lớp hoạt động tốt


147

Tôi đã thiết lập dự án của mình trong Android Studio để sử dụng thư viện Square Wire , theo câu hỏi này .

Build-> Compile Projecthoạt động tốt.

2:03:10 PM Compilation completed successfully in 31 sec

Tuy nhiên, nếu tôi mở một trong các tệp Bộ đệm Giao thức được tạo, thì gói Square sẽ không được nhận dạng.

Lỗi biên dịch nội tuyến Android Studio

Một triệu chứng khác là các phương thức được kế thừa từ Messagelớp Square đang hiển thị là "Không thể giải quyết phương thức" biên dịch lỗi trong trình chỉnh sửa, mặc dù chúng xây dựng và chạy tốt.

Lỗi biên dịch dòng đơn Android Studio

Tôi có cần phải làm gì đó hơn là chỉ thêm phụ thuộc vào build.gradlemô-đun của mình vào dự án không?


Tôi gặp vấn đề tương tự khi sử dụng các thư viện của mình (không phải thư viện bên ngoài), xem cách tôi quản lý để khắc phục sự cố này tại đây: stackoverflow.com/a/50569818/373033
nah0y

Câu trả lời:


132

Các bước sau đây giúp

  1. Đóng dự án của bạn và xóa thư mục dự án của bạn project/.idea
  2. Xóa ~/.gradlethư mục.

Mở lại dự án. Mọi thứ nên được giải quyết.


1
Dành hàng giờ cho vấn đề này. Cảm ơn. Sai lầm của tôi là tôi vừa xóa .gradle chứ không phải .idea
M vào

2
Điều này làm việc cho tôi xóa .gradle và .idea và sau đó làm mất hiệu lực và khởi động lại đã giải quyết vấn đề của tôi. và sau đó đồng bộ hóa với lớp.
Pankaj

Tôi đã chuyển .gradlethư mục từ thư mục C:\Users\Hasnain\.gradlekhác. Sau đó, studio android hiển thị lỗi trên từng lớp. Sau đó, tôi làm theo các bước nói trên, sau đó vấn đề được giải quyết.
hasnain_ahmad

38
Xóa mọi thứ trong .ideathư mục là một ý tưởng tồi, vì nó có thể thiết lập lại tất cả các cài đặt dự án. Chỉ cần loại bỏ .idea/libraries.idea/cachescuối cùng đã giải quyết vấn đề cho tôi sau khi thử tất cả các giải pháp khác.
fdermishin

hoạt động rất tốt trong AS 3.1.3. Tôi thậm chí không cần phải vô hiệu hóa bộ nhớ cache. Hãy hy vọng AS sẽ xây dựng nhanh hơn bây giờ!
Ai đó ở đâu đó vào

111

Cảm ơn free3dom đã giúp tôi đi đúng hướng ở đây.

Chẩn đoán

Các Sync Project with Gradle Filestùy chọn trong Android Studio dường như để giữ cho các Project Structurethư viện được cập nhật.

đồng bộ hóa lớp

Tuy nhiên, trong trường hợp của tôi có một số lỗi:

lỗi tìm kiếm

Mở rộng liên kết (không rõ ràng lắm) cho thấy chi tiết. Thư viện thời gian chạy dây của tôi đã hiển thị ở một vị trí không chính xác:

thư viện

Đây dường như là một sự nôn nao từ cấu hình ban đầu của tôi, nơi tôi đã nhập JAR vào một thư mục libs.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

Sau đó tôi đã thay đổi nó để được nhập trực tiếp từ Maven Central ( theo như ở đây ) và có vẻ như cài đặt cũ không bao giờ bị ghi đè bằng cài đặt mới.

Sửa chữa

Cách khắc phục là xóa phần phụ thuộc thư viện khỏi Project Structuremàn hình và sau đóSync Project with Gradle Files một lần nữa.

Thêm chi tiết

Bạn cũng có thể xem đường dẫn nào đang được sử dụng cho tài nguyên bằng cách mở .idea/libraries/wire_runtime_1_2_0.xmltrực tiếp.

Cái hỏng của tôi là:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

Sau khi xóa và thêm lại thư viện, nó đã thay đổi root urlthành:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

Cập nhật

Android Studio v0.4.4 rõ ràng đã sửa các lỗi khác có cùng triệu chứng, vì vậy nếu bạn có phiên bản cũ hơn, bạn có thể muốn nâng cấp.


3
Cảm ơn Dan J. Trước khi tôi thử giải pháp của bạn, tôi đã thử cách dễ dàng hơn (theo tôi) và nó hiệu quả với tôi: Mở bảng Gradle ở phía bên phải của trình soạn thảo (phía trên "Maven Project" và "Commander") và nhấp vào nút làm mới. Điều đó làm mới các thiết lập mô-đun. Tín dụng cho @Matteo Danieli (xem: stackoverflow.com/a/17043001 )
almighty972

1
cần phải xóa các phụ thuộc jar cục bộ, điều đó đã giải quyết nó cho tôi, cảm ơn vì nguồn cảm hứng
jhegedus

Tôi vừa nhấp vào "Dự án đồng bộ hóa với các tệp Gradle" và mọi thứ đều ổn ngay bây giờ! Cảm ơn rât nhiều! Bạn đã cứu ngày của tôi haha
Jorge Gabriel Siqueira

Không làm việc cho tôi. Nhưng xóa .gradle và .idea đã làm việc
Golnar

Ngày nay, cùng một nút được hiển thị dưới dạng biểu tượng con voi với mũi tên xuống.
tm

87

Giải pháp đơn giản

Đi qua liên kết và nó làm việc cho tôi.

  1. Chọn File tùy chọn từ menu ở phía trên bên trái của studio android.
  2. Chọn tùy chọn: Invalidate Cache/RestartNó sẽ mở một hộp thoại.
  3. Nhấp vào nút đầu tiên với tùy chọn: Invalidate and Restart
  4. Nó sẽ đóng Android Studio và khởi động lại nó. Ngoài ra, nó sẽ bắt đầu lập chỉ mục lại dự án.

Nó đã giải quyết vấn đề của tôi

Đi tới Tệp > Bộ nhớ cache / Khởi động lại không hợp lệ > và khởi động lại

Nguồn ở đây cho youtube


Điều này làm việc cho tôi; Android Studio đã hiển thị lỗi ở mọi nơi sau khi tôi cố gắng thực hiện một số chương trình tại một địa điểm có khả năng thu sóng wifi kém. (!!!) Sau đó tôi đã đảm bảo rằng mình có kết nối wifi tốt và được xây dựng lại, tuy nhiên, lỗi vẫn còn. Ngay cả một sạch / xây dựng đã không giải quyết nó. Cache vô hiệu hóa đã sửa nó.
Ai đó ở đâu đó

Sử dụng Android Studio 2.1.3 trên Fedora. Giải pháp này đã làm việc cho tôi. Đã thêm các công cụ libgdx và quá trình nhập có lỗi nhưng nó được biên dịch tốt. Đóng và mở lại không hoạt động nhưng làm việc không hợp lệ và khởi động lại hoạt động tốt.
JoeMoe1984

1
Đã làm việc trong AS 3.1.4! Tôi nghĩ rằng tất cả các đề xuất này là cách đúng đắn để xử lý nó. Đó là bằng lệnh menu của Android Studio. Điều đó chắc chắn tốt hơn nhiều so với thực hiện thiết lập lại thủ công trong môi trường tệp.
Jan Bergström

Làm việc cho tôi vào ngày 3.5.1
Neela

44

1) Nhấp vào biểu tượng lớp (bên phải trên studio android)

nhập mô tả hình ảnh ở đây

2) Nhấp vào nút refresh và đợi vấn đề được giải quyết: D

nhập mô tả hình ảnh ở đây


Trên Android Studio 3.1 +, vui lòng Truy cập Tệp> Vô hiệu hóa Bộ đệm / Khởi động lại> Không hợp lệ và Khởi động lại.
DroidDev

17

Tôi vẫn gặp vấn đề tương tự với Android Studio v3.2.1 và đã giải quyết vấn đề chỉ cần xóa hai thư mục con này của .ideathư mục (không cần xóa toàn bộ .ideathư mục) trong khi đồng bộ hóa lớp không hoạt động:

  • ./idea/caches
  • ./idea/libraries

Trong hầu hết các trường hợp, nó giải quyết vấn đề của tôi. Trong một vài trường hợp khác, có thể cần phải sử dụng bộ đệm Cache không hợp lệ và khởi động lại, hoặc thay đổi phiên bản Gradle.
GoRoS

12

Đối với tôi xóa thư mục .gradle và .idea của dự án đã giải quyết vấn đề.


11

Chỉ cần làm điều này trên studio Android của bạn:

Tệp -> Vô hiệu hóa bộ nhớ cache / Khởi động lại -> Không hợp lệ và khởi động lại

Điều này làm việc cho tôi. Không cần xóa ./gradle hoặc ./idea thư mục


9

Bản sửa lỗi của tôi cho việc này -

  1. Mở build.gradletập tin của bạn
  2. Cắt bỏ mọi thứ bên trong dependencies{}
  3. Dán vào notepad để giữ tạm thời siêu an toàn
  4. Chọn 'Đồng bộ hóa ngay bây giờ' trong build.gradletệp
  5. Đợi đồng bộ hóa không thành công
  6. Dán phụ thuộc của bạn trở lại
  7. 'Đồng bộ hóa lại' một lần nữa

Đã thử rất nhiều giải pháp và đây là cách khắc phục duy nhất cho tôi.


7

Tôi gặp vấn đề này sau khi nâng cấp lên Android Studio 3.1. Tôi đã giải quyết vấn đề bằng cách nâng cấp tất cả các thành phần tôi sử dụng. Vì vậy, tôi đã thay đổi các mục sau trong build.gradle (ứng dụng) của mình:

  1. Nâng cấp SDK (từ "compileSdkVersion 25" thành "compileSdkVersion 26" hoặc có thể cao hơn khi bạn đọc ghi chú này):

    // biên dịchSdkVersion 25

    biên dịchSdkVersion 26

    Nhận xét: Thay đổi này buộc chương trình phải tải xuống / cài đặt sdk mới trong quá trình đồng bộ hóa tiếp theo.

  2. Nâng cấp appcompat-v7:

    // thực hiện 'com.android.support:appcompat-v7:25.4.0'

    triển khai 'com.android.support:appcompat-v7:26.1.0'

  3. Nâng cấp căn cứ hỏa lực:

    // triển khai 'com.google.firebase: firebase-ads: 11.4.2'

    triển khai 'com.google.firebase: firebase-core: 12.0.1'

    triển khai 'com.google.firebase: firebase-ads: 12.0.1'

  4. Trong DỰ ÁN build.gradle, nâng cấp dịch vụ google:

    // classpath 'com.google.gms: google-services: 3.1.0'

    classpath 'com.google.gms: google-services: 3.2.0'

  5. Nâng cấp lớp (từ 4.4 lên 4.6). Từ gradle-wrapper.properies: phân phốiUrl = https: //service.gradle.org/distribution/gradle-4.6-all.zip

Sau những thay đổi này, dọn dẹp dự án, vô hiệu hóa bộ đệm / khởi động lại, xóa nội dung .idea / library và resync (không chắc chắn về thứ tự nhưng TẤT CẢ các hoạt động này đã giải quyết vấn đề cho tôi).


1
Còn các thành phần khác không có phiên bản mới hơn thì sao?
Amir Dadgari

Tôi không biết. Đó là những thành phần tôi có trong dự án của tôi.
Pablo Alfonso

Xin chào Amir, theo trang web chính thức, lớp 4.4 là bản mới nhất có sẵn (kể từ tháng 3 năm 2018). Bạn đã tìm thấy Lớp 4.6 ở đâu?
Pablo Alfonso

Tôi tìm thấy vị trí của Lớp 4.6. Tôi cập nhật câu trả lời. Cảm ơn.
Pablo Alfonso

4
xóa nội dung .idea / library, nó hoạt động với tôi. cảm ơn rất nhiều
Trâm Nguyễn

7

Xóa thư mục thư viện trong .idea đã giải quyết vấn đề cho tôi. Nó nằm trong thư viện gốc / .idea / của dự án.

Tôi đang sử dụng Android Studio 3.1.4


2
Điều này đã làm việc nhưng tôi đã phải vô hiệu hóa và khởi động lại là tốt.
Dan Anderson

5

Các bước bên dưới khi Dự án được biên dịch thành công nhưng với các lớp chưa được giải quyết (Tất cả các lớp sử dụng sẽ có màu đỏ trong tất cả các tệp)

Bước 1. Xóa tập tin .gradle

Bước 2. Xóa tệp .idea

Bước 3. Mở cửa sổ phòng thu Android mới với một số dự án Android khác trên hệ thống của bạn và đóng Dự án của bạn bị lỗi

Bước 3 . Bây giờ Mở / Nhập Dự án một lần nữa từ thanh công cụ phòng thu Android Studio -> Tệp -> Mở

Lưu ý: Bây giờ khi bạn nhập dự án, các thư mục .gradle và .idea mới sẽ được tự động tạo với các phụ thuộc được giải quyết bởi trình biên dịch.


2

Nếu tất cả các câu trả lời trên không làm việc cho bạn. Chỉ cần thử cập nhật phụ thuộc của bạn lên phiên bản mới nhất. Nó làm việc cho tôi.


2

Tôi đã thử hầu hết các bản sửa lỗi ở trên và những gì thực sự hoạt động là xóa tất cả các thư mục cấu hình .AndroidStudio và sau đó khởi động lại Android Studio.

  • Vị trí: C: \ Users \ your.username

2

Tôi tìm thấy cách dễ dàng

  • Mở cấp ứng dụng build.gradle
  • Xóa phần phụ thuộc đang hiển thị lỗi & Sync.
  • Một lần nữa thêm phụ thuộc và đồng bộ hóa.

Lỗi đi!

Trước

Trước

Sau

Sau



2

Dường như tất cả mọi người sử dụng một cách tiếp cận khác nhau để khắc phục những vấn đề này. Tôi sẽ đề xuất một cái khác mà tôi cảm thấy ít xâm lấn hơn những cái khác. Khi tôi giới thiệu các thay đổi từ thư viện aar mà tôi đưa vào, tôi sẽ mở tệp "settings.gradle" cho dự án.

Sau đó cắt bỏ mô-đun dự án chính từ danh sách các dự án:

include ':mainproj',

và sau đó đồng bộ hóa dự án của bạn. Sau đó dán lại và đồng bộ hóa lại dự án của bạn một lần nữa. Tôi tin rằng điều này giống như một số bước xóa thủ công, nhưng điều này cho phép bạn làm điều đó từ IDE nhanh hơn một chút và ít đau đớn hơn.


Hoạt động tốt cho tôi. Cảm ơn! @Jay Snayder
Shivam

2

Tôi đã sửa bằng phương pháp dưới đây

Phương pháp 1

Tệp> Bộ đệm / Khởi động lại không hợp lệ> Không hợp lệ và khởi động lại

Cách 2

  • Nếu bạn đang phải đối mặt với lỗi này chỉ cho dự án cụ thể, thì hãy làm điều này
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • Nếu bạn đang phải đối mặt với lỗi này cho tất cả các dự án, thì hãy làm điều này
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5

1

Những giải pháp này không giúp tôi giải quyết vấn đề tương tự trong Android Studio 0.5.8.

Tôi đã mô tả câu trả lời của mình cho cùng một câu hỏi (tôi đoán): https://stackoverflow.com/a/23891829/534698 Tôi vừa xóa ~ / .AndroidStudioPreview thư mục (trong Ubuntu). Tôi đã bỏ lỡ tất cả các cài đặt Android Studio của mình nhưng nó hoạt động.


đây là điều duy nhất làm việc cho tôi Android Studio 1.0.2
Bobby Hargett

1

Trong trường hợp của tôi, vì một số lý do, Phiên bản Plugin Android không được đặt. Tôi đã thử xóa bộ nhớ cache và loại bỏ .gradle và .idea, nhưng nó không hoạt động và cuối cùng sau khi lang thang hàng giờ, tôi đã tìm thấy điều này.

Tệp> Cấu trúc dự án


0

Tôi đã có một vấn đề tương tự trước đây, vô hiệu hóa bộ đệm và khởi động lại không giải quyết nó. Tôi vừa mới thực hiện Gradle Sync và mọi thứ đều hoạt động tốt.


0

Giải quyết vấn đề bằng cách làm sạch dự án Build->Clean Project


0

Đối với tôi, tôi giới thiệu một jar trong thư viện mô-đun. Nó không thể giải quyết biểu tượng trong bình. Vì vậy, tôi tìm giải pháp cho tình huống của tôi. Sử dụng providedcách.

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')

0

Tất cả các câu trả lời ở trên không làm việc cho tôi. Vấn đề của tôi là tôi có 3 mô-đun, với 2 trong số chúng có cùng tên gói .

Nó là ok cho studio android <= 3.2.1.

Đối với studio android> 3.2.1, ressouce có màu đỏ.

Tôi đã giải quyết nó như đề cập ở đây (tôi chỉ tạo tên gói khác nhau cho mỗi mô-đun): Bất kỳ phiên bản Android Studio> 3.2.1 nào hiển thị tài nguyên màu đỏ nhưng vẫn biên dịch


0

Tôi đã xóa vấn đề tương tự bằng các bước sau:

  1. cập nhật phiên bản thư viện theo cấp độ thành bất kỳ số ngẫu nhiên nào, ví dụ: lib_1.0.0 -> lib_1.0.0.0

  2. đồng bộ hóa lớp

  3. đồng bộ hóa hiển thị lỗi

  4. hoàn nguyên thay đổi phiên bản lib_1.0.0.0 -> lib_1.0.0

  5. đồng bộ hóa lớp

Mở tệp java với nhập khẩu để xem lỗi được xóa.


0

Không có giải pháp nào phù hợp với tôi..Tôi đã gỡ cài đặt java khỏi máy tính của mình, chạy android studio để đảm bảo nó phát hiện gỡ cài đặt và sau đó cài đặt lại.

Nếu bạn chọn đi theo cách này, hãy thử thay đổi đường dẫn jdk và thiết lập đường dẫn mới trong cấu trúc dự án. Nếu điều đó không làm việc, hãy tiếp tục và gỡ cài đặt java .


0

Tôi chỉ thực hiện Dự án sạch và Dự án xây dựng lại trước khi khởi động lại Android Studio, nó giải quyết vấn đề của tôi. Có lẽ Android Studio thực sự không cập nhật tài liệu tham khảo trong giao diện

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.