2013-09-24 78 views
44

Gần đây tôi đã tạo tệp Jar thư viện mà tôi đã nhập trong dự án Android của mình. Tôi có thể gọi các chức năng và sử dụng các lớp có trong tệp Jar này, nhưng Android Studio vẫn nói với tôi rằng nó không thể "giải quyết biểu tượng" của lớp tôi đang sử dụng. Xin vui lòng xem hình dưới đây:Android Studio không thể phân giải biểu tượng nhưng mã thực thi chính xác

SDK class - cannot find symbol

Click here for full-size image

Mã này được xây dựng và thực hiện thành công. Hàm isThisThingWorking() chỉ đơn giản trả về true và đó chỉ là những gì boolean blah được đặt thành.

Tôi đã thử nhấn nút Sync Project with Gradle Files và sử dụng tùy chọn Invalidate Caches/Restart... từ trình đơn File của Android Studio, nhưng không cách nào trong số này giải quyết được vấn đề. Tôi có thể làm gì để làm cho Android Studio IDE không hiển thị lỗi Cannot resolve symbol 'xxxSDK'?

+0

Ý của bạn là gì? Tôi đã chấp nhận câu trả lời đã giải quyết được vấn đề cụ thể của tôi. Câu trả lời với hầu hết các phiếu bầu ở đây áp dụng cho hầu hết những người có cùng một vấn đề. Tôi không quen thuộc với bất kỳ giải pháp khác, thật không may. – BVB

+0

thể trùng lặp của [Android Studio nói "không thể giải quyết biểu tượng" nhưng dự án biên dịch] (http://stackoverflow.com/questions/19508649/android-studio-says-cannot-resolve-symbol-but-project-compiles) – grAPPfruit

+0

@ grAPPfruit tiền đề của câu hỏi là khác nhau và ngày được đăng sớm hơn câu hỏi bạn đã liên kết. – BVB

Trả lời

5

Tôi đã tìm thấy sự cố - số SDK.jar của tôi không được tạo chính xác. Nó bao gồm .java tệp thay vì tệp .class. Điều này giải thích tại sao IDE không thể tìm thấy lớp SDK. Cấu trúc gói vẫn chính xác trong Jar, đó là lý do tại sao tên gói chính nó không phải là một màu đỏ. Mã hoạt động chính xác, vì trình biên dịch biết biên dịch các tệp .java.

Để giải quyết vấn đề, tôi đã sửa đổi build.gradle dự án SDK của mình để bao gồm .class tệp, thay vì .java tệp, khi tạo Jar. Bao gồm cả Jar mới này thay vì Jar cũ đã khắc phục vấn đề IDE.

+2

Điều này có ý nghĩa. Điều gì xảy ra nếu .jar không thuộc sở hữu của tôi. Làm thế nào tôi có thể lấy nó từ .java đến .class? – clocksmith

+0

Bạn sẽ cần phải biên dịch các tập tin Java. – BVB

+1

xin lỗi, nhưng tôi không phụ thuộc vào tệp '.java'. Bạn có thể đăng dòng từ tệp build.gradle của mình không? – flobacca

3

Thử thêm thư viện vào Project Structure.

Để thực hiện việc này, trên menu chọn File ->Project Structure. Chọn tùy chọn Libraries và nhấp vào màu xanh lá cây + để thêm thư viện của bạn.

+0

Tôi đã thêm nó ở đó đã bằng cách click chuột vào Jar và chọn 'Thêm vào làm tùy chọn Library'. – BVB

106

Tôi đã gặp sự cố này khi IntelliJ IDEA bị đóng đột ngột do sự cố hệ điều hành.

Bạn có thể thực hiện "File" -> "Invalid Cache ..." và chọn tùy chọn "Invalidate and Restart" để sửa lỗi này.

+0

thanks :) vấn đề của tôi như bạn, rằng sau khi hệ điều hành bị treo: D – hqt

+0

Điều này giải quyết vấn đề của tôi. ;-) Thx –

+0

Sau khi xáo trộn rất nhiều, điều này cố định, nó. Nó xảy ra chủ yếu cho các dự án nhập khẩu của Eclipse. – sivag1

1

này luôn xảy ra với tôi sau khi chuyển ngành về dự án hiện tại của tôi: rất nhiều erros không ý thức được báo cáo bởi IDE.

Giải pháp là để sửa đổi và lực một build.gradleđồng bộ.