Trong eclipse, không thể tham chiếu một dự án thư viện android trong một dự án android khác


104

Khi tôi viết ra câu hỏi này, tôi đã giải quyết được nó vì vậy hãy lặp lại nó ở đây vì lợi ích của những người khác. Đây là vấn đề ban đầu:

Tôi đã tạo một dự án thư viện rất đơn giản mà tôi muốn tham chiếu trong một dự án khác. Tôi đã thực hiện điều này trước đây mà không có vấn đề gì nên không thực sự chắc chắn tại sao lần này nó không hoạt động. Tôi có:

  1. Gắn cờ dự án thư viện thông qua thuộc tính dự án. Các default.propertiestập tin có nhóm này:android.library=true

  2. Trong dự án khác của tôi đã thêm tham chiếu đến dự án thư viện của tôi thông qua thuộc tính dự án. Các default.propertiestập tin có các tài liệu tham khảo thêm vào như là tức dự kiếnandroid.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. Dấu tích màu xanh lá cây đối với dự án thư viện được tham chiếu bắt đầu có màu xanh lục và sau đó chuyển thành dấu thập đỏ.

Điều này ngụ ý rằng phải có một cái gì đó sai / thiếu từ dự án thư viện nhưng tôi không biết những gì. Dự án thư viện của tôi trong dịp này đơn giản hơn rất nhiều so với dự án trước đó tôi đã tạo.


Giải pháp này đã giúp trong trường hợp của tôi: stackoverflow.com/questions/9283040/… Tôi hy vọng nó sẽ giúp ích cho ai đó
Abeer Sul

Câu trả lời:


160

OK Đây là giải pháp mà tôi đã tìm thấy khi tìm kiếm tệp default.properies của dự án tham chiếu (không phải thư viện) trong hệ thống tệp của mình. Mặc dù dự án tham chiếu nằm trong cùng một không gian làm việc nhật thực như dự án thư viện, nhưng các tệp thực sự nằm ở một nơi khác trong hệ thống tệp, tức là chúng không nằm trong cùng một thư mục mẹ của dự án thư viện. Ngay sau khi tôi đặt dự án tham chiếu vào cùng một thư mục vật lý với dự án thư viện, mọi thứ đều ổn.

Tôi đoán rằng đây phải là điều gì đó liên quan đến android bằng cách sử dụng kiến ​​bên dưới vỏ bọc.

Chỉnh sửa: Tên dự án cần khớp với tên thư mục trên hệ thống tệp. Những gì bạn đang thấy trong Thuộc tính dự án-> Android-> Tham chiếu thư viện là một đường dẫn hệ thống tệp tương đối.


3
Cũng muốn thêm rằng các liên kết tượng trưng không ổn cho điều này. Tôi đã lưu trữ tất cả các dự án của mình trong cùng một thư mục với nhau ở một vị trí khác (nơi tôi đặt những thứ tôi muốn sao lưu) và sau đó là một loạt các liên kết tượng trưng trong thư mục không gian làm việc của tôi đến các thư mục này. Vì vậy, tất cả chúng đều nằm trong cùng một thư mục với nhau ở cả hai nơi, tuy nhiên việc sử dụng các liên kết tượng trưng đã làm rối tung tất cả. Sau khi tôi tải thư mục thực làm không gian làm việc cơ sở của mình, mọi thứ đều ổn.
Zulaxia

7
+1 Để hiểu rõ hành vi KHỦNG KHIẾP này của tổ hợp Eclipse / ADT. Chỉ FYI, ngay cả việc đặt cả hai dự án trong cùng một thư mục vật lý cũng không giúp ích được gì nếu thư mục đó nằm trên một chia sẻ Samba . Ugrrr ...
an00b

20
Đôi khi Eclipse sẽ xóa tham chiếu, khởi động lại nhật thực và thêm lại, bây giờ nó sẽ hoạt động.
Warpzit

Đây là một vấn đề đối với các dự án của tôi thuộc và nằm trong cùng một không gian làm việc. Đã nhập dự án trong cùng một không gian làm việc với thư viện và mọi thứ đều hoạt động tốt. Cảm ơn vì câu trả lời.
Jayshil Dave

Kiểm tra xem không gian làm việc và thư viện của bạn có ở cùng một vị trí thư mục hay không. Đã mắc lỗi tải lại ADT và tạo một dự án trong không gian làm việc C: \ users trái ngược với không gian làm việc thực tế của tôi. Không cần phải nói, hãy kiểm tra lại xem dự án của bạn VÀ thư viện của bạn có nằm trong cùng một thư mục làm việc không!
Garbit

11

Đảm bảo rằng cả hai dự án đều có mặt trong cùng một không gian làm việc. Để thực hiện, trong khi nhập các dự án, hãy đảm bảo chọn hộp kiểm "sao chép dự án vào không gian làm việc".


1
Làm thế nào tôi có thể sử dụng cùng một dự án thư viện cho một dự án khác. Nếu tôi làm như vậy, nó hiển thị biểu tượng chữ thập màu đỏ .. @Karthik
Shylendra Madda

10

vấn đề tương tự sẽ xảy ra nếu dự án thư viện của bạn nằm trong phân vùng khác với không gian làm việc hiện tại của bạn. Tôi có cùng một vấn đề vừa rồi. Nguồn git của tôi là C: và tôi chỉ cần di chuyển không gian làm việc của mình sang D: và mọi thứ bắt đầu sụp đổ.


4
Nếu các dự án chính và thư viện nằm trên các ổ đĩa khác nhau , có vẻ như Eclipse không thể giải quyết đường dẫn Tham chiếu từ tuyệt đối sang tương đối và Eclipse không hài lòng về điều đó (dấu tích màu xanh lá cây chuyển thành dấu thập đỏ).
Pang

đã làm việc cho tôi quá. Tôi đã thay thế dự án được tham chiếu trong cùng một ổ đĩa (H :) và bây giờ nó ổn
Tobia Zambon

4

Cách đơn giản nhất để chỉnh sửa các đường dẫn thư viện là sử dụng GUI từ Eclipse để thêm thư viện như được hiển thị trong ảnh chụp màn hình sau và để Eclipse quản lý việc đưa các đường dẫn tương đối chính xác vào project.properties. Đó là một thiết lập phổ biến để các dự án thư viện của bạn được lưu trữ tại các thư mục rất khác so với các dự án chính sử dụng thư viện của bạn. Phương pháp này sẽ hoạt động nếu "dự án libary" và dự án sử dụng nó nằm trong cùng một "không gian làm việc" của nhật thực (chúng "không cần" nằm trong cùng một thư mục mẹ): nhập mô tả hình ảnh ở đây


4
Vấn đề là do thư viện và dự án nằm trên các ổ đĩa / phân vùng khác nhau ... hãy xem danh sách lỗi ở trên. Yours là tốt vì đường dẫn thư viện của bạn hiển thị đường dẫn tương đối thay vì hệ điều hành DOS đường dẫn đầy đủ ...
kenyee

3

Hãy đảm bảo rằng dự án thư viện được đánh dấu là "Là Thư viện" - nhấp chuột phải vào dự án thư viện - thuộc tính - Android - đánh dấu hộp kiểm "Là Thư viện" - trong project.properties của dự án thư viện, bạn sẽ có một mục mới: "android .library = true. Bây giờ hãy thêm nó vào dự án bạn muốn như được mô tả trong bài đăng bên dưới. (bài đăng có tích hợp hình ảnh - từ Nilesh Pawar).


1
Điều này làm việc tốt cho tôi. Phần khó hiểu là tôi nghĩ vị trí của hộp kiểm 'Là Thư viện' này. Không trực quan rằng đây thực sự là chọn mục tiêu của bản dựng ứng dụng / thư viện hiện tại chứ không phải là một công tắc tùy chọn cho các thư viện được đưa vào.
EtienneSky

3

Lỗi này được tham chiếu nhiều lần ở đây 27199 , 35786 , 36460 & 38052

Có lẽ bằng cách bỏ phiếu cho họ, nó sẽ được sửa chữa vào một ngày nào đó ...


2

Tuy nhiên, một quan sát khác về cùng một vấn đề.

Đối với tôi, hai dự án nằm trên cùng một thư mục mẹ và cả hai đều là cục bộ bên trong không gian làm việc. Ngay cả khi đó vấn đề vẫn xảy ra.

Tôi đã chỉnh sửa tệp "project.properties" và đặt đường dẫn tuyệt đối (với dấu gạch chéo về phía trước '/' cho trình phân tách) của dự án thư viện. Đã lưu và đóng nó. Sau đó, đi tới hộp thoại thuộc tính dự án, xóa thư viện (vẫn hiển thị biểu tượng chữ thập nhưng có đường dẫn abs) và thêm lại như bình thường. Đáng ngạc nhiên là vấn đề đã được giải quyết và dự án biên dịch và chạy.

Điều này thực sự kỳ lạ và phải là một lỗi với ADT. Tôi đang sử dụng phiên bản ADT 20.0.2


+1. Đối mặt với vấn đề này khi chuyển đổi các thư viện có cùng tên. Có vẻ như nhật thực (hoặc ADT) đang cố gắng tham chiếu đến nhật thực cũ và không thành công. Khởi động lại Eclipse giúp. (Ubuntu 12.04, Eclipse Indigo, ADT 21.0.0)
Luten

2

khi nhà phát triển tham chiếu đến facebook hoặc bất kỳ dự án thư viện nào khác thì trước hết hãy làm sạch dự án khỏi eclipse-> project-> clean project. muốn cho phép lỗi gạch chéo đỏ trong màn hình tham chiếu.


2

Đối với tôi, tôi chỉ cần khởi động lại nhật thực và thư viện được thêm vào hoạt động tốt.

Ý tôi là lần đầu tiên nó hiển thị dấu đỏ sau khi thêm dự án thư viện. Mặc dù dự án chính của eclipse và dự án thư viện nằm trong cùng một thư mục không gian làm việc và không có tệp tài nguyên nào nằm ngoài thư mục dự án.

Vì vậy, bạn có thể thử khởi động lại nhật thực của mình. Chúc bạn viết mã vui vẻ ....


1

Giải pháp cho tôi là

  1. Tạo không gian làm việc mới
  2. Nhập Dự án Thư viện trong không gian làm việc đó
  3. Nhập dự án mong muốn trong không gian làm việc đó
  4. Có cả dự án và dự án thư viện cùng một phiên bản hệ điều hành Android đích
  5. Dự án thư viện tham khảo trong dự án của tôi

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


Tạo một không gian làm việc mới cũng giải quyết được vấn đề. Bạn cũng cần phải xóa các dự án.
Omer Cansizoglu

1

Tôi đã gặp vấn đề tương tự ở đó khi tôi cố gắng thay đổi không gian làm việc của mình để đây là giải pháp của tôi:

  1. nhập và sao chép tất cả dữ liệu dự án bao gồm cả dự án thư viện vào không gian làm việc
  2. xóa tham chiếu dự án cũ bằng cách Nhấp chuột phải vào dự án -> Thuộc tính -> Android -> Thư viện, và chọn thư viện bị hỏng (để tôi gọi nó là) và chọn Xóa
  3. làm sạch dự án trước (để làm mới các thuộc tính dự án của bạn)
  4. đi tới Thuộc tính của dự án thư viện -> Android -> Thư viện và kiểm tra là thư viện nếu không, nhấp vào Áp dụng rồi OK
  5. nếu dự án thư viện là thư viện đã được kiểm tra, trước tiên Bỏ chọn nó sau đó Làm sạch dự án thư viện sau đó thực hiện lại Bước 4
  6. Chuyển đến dự án mà bạn muốn có thư viện, sau đó nhấp chuột phải vào dự án -> Thuộc tính -> Android -> Thư viện, Thêm rồi chọn dự án thư viện (nó phải ở đó) và nhấp vào Áp dụng rồi OK
  7. nếu vẫn không xuất hiện, hãy làm sạch dự án một lần nữa và điều đó nên làm

1

Chỉ cần khởi động lại nhật thực của bạn. Nó giải quyết vấn đề của tôi


0

Khi bạn xem trước và sau đường dẫn tham chiếu, nó xuất phát từ "C: / workspace / mylib" và chuyển đến "../../mylib" khi được sao chép vào đúng vị trí, khá thú vị.


0

FYI,

Điều phù hợp với tôi là xóa các dự án 'thư viện' (các dự án thực tế) khỏi không gian làm việc của tôi (mà không xóa các tệp), sau đó nhập lại chúng bằng trình hướng dẫn (nhập dự án Android hiện có từ mã nguồn).


Cũng làm việc cho tôi. Chỉ cần loại bỏ và reimported các dự án (như 'dự án thực hiện')
Neromancer

0

Cảm ơn vì đã đăng câu hỏi. Tôi đã gặp chính xác vấn đề tương tự khi tích hợp Facebook với ứng dụng Android của mình. Tôi đã khắc phục sự cố bằng cách di chuyển dự án phát triển của mình sang cùng một ổ đĩa Windows chứa dự án thư viện. Bằng cách nào đó Eclipse không thể đọc đúng vị trí của dự án thư viện từ tệp default.properties nếu nó nằm trong một ổ đĩa khác.


0

Tương tự như bài đăng của Sufi Khan, tôi cũng đã giải quyết vấn đề này bằng cách khởi động lại. Trường hợp của tôi khác ở chỗ khi lần đầu tiên tôi truy cập Properties-> Android và thêm thư viện, tôi nhận được một dấu kiểm màu xanh lá cây đáng yêu. Khi tôi đóng hộp thoại, Eclipse vẫn hiển thị lỗi loại không tìm thấy lớp. Khi tôi kiểm tra lại các thuộc tính, tôi thấy dấu X. Nhưng giải pháp của ông Kahn (xóa lib bị lỗi, khởi động lại Eclipse, thêm lại lib) hoạt động tốt.

Tôi đang sử dụng phiên bản 0702 của gói ADT (bắt đầu bằng "cụm", vần với "vịt").


0

Tôi đã làm theo câu trả lời được chấp nhận nhưng cũng phải đảm bảo rằng tệp "project.properties" của tôi có thể đọc được.

Nếu tệp chỉ đọc (được kiểm tra trong kiểm soát nguồn) thì nhật thực sẽ không chỉnh sửa tệp đó. Thêm tham chiếu thư viện sẽ thành công, nhưng thay đổi sẽ không được duy trì sau khi nhấn OK.

Nếu việc đóng cửa sổ tùy chọn và mở lại lần nữa sẽ xóa thư viện bạn vừa thêm vào, đây có thể là giải pháp của bạn.


0

Trong trường hợp dự án thư viện của bạn vẫn không hiển thị, hãy thử thêm cờ thư viện vào thuộc tính dự án thư viện của bạn

Thêm android.library = true

project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-17
android.library=true
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.