2012-06-30 29 views
20

Tôi cố gắng để đăng ký một thiết bị vào GCM sử dụng đoạn mã sau:GCM: java.lang.NoClassDefFoundError: com.google.android.gcm.GCMRegistrar

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    GCMRegistrar.checkDevice(this); 
    // the following function can be removed when deploying the app 
    GCMRegistrar.checkManifest(this); 

    final String regId = GCMRegistrar.getRegistrationId(this); 
    if (regId.equals("")) { 
     GCMRegistrar.register(this, SENDER_ID); 
    } else { 
     Log.v(TAG, "Already registered"); 
    } 

tôi đã nhập khẩu nhập khẩu com.google.android .gcm.GCMRegistrar;
và cũng đã thêm GCM.jar vào đường dẫn xây dựng của tôi trong Eclipse mà tôi đã tải xuống bản tải xuống sdk

Xin vui lòng trợ giúp!

+1

Trong thư mục nào là bình của bạn? –

+3

Bạn nên đặt bình trong thư mục libs của bạn (không phải lib), và xác minh nó nằm trong danh sách "phụ thuộc Android". Đôi khi tôi phát hiện ra sắp xếp lại thứ tự của các thay đổi phụ thuộc hành vi, vì vậy bạn có thể thử nó cũng – Shushu

+0

nhờ tôi sao chép các tập tin jar vào thư mục libs và nó có vẻ làm việc! – user1492955

Trả lời

31

Trong ADT cập nhật (Trên ADT 17), bạn phải đặt các tệp jar bên trong thư mục libs chứ không phải lib. Vì vậy, hãy chắc chắn rằng bạn đặt gcm.jar tệp bên trong libs và không phải là lib thư mục.

+6

gcm.jar của tôi nằm trong libs và i hae cấu hình đường dẫn vẫn không thành công – Passion

1

Hãy chắc chắn rằng các tập tin gcm jar trong thư mục libs phải và thêm vào con đường java xây dựng tại . tính chất dự án của bạn

28

Chỉ cần vào tính chất của dự án -> java build path -> "trật tự và xuất khẩu" bây giờ giv một đánh dấu vào file jar "gcm.jar" mà bạn đã thêm

+3

điều này làm việc cho tôi, cảm ơn bạn !!! – TharakaNirmana

+0

Điều này cũng phù hợp với tôi .. cảm ơn. –

6

Tạo thư mục libs trong thư mục dự án của bạn và đặt gcm.jar vào đó. Sau đó thêm nó vào đường dẫn lớp học của bạn bằng cách sử dụng thêm các jars bên ngoài trong định cấu hình đường dẫn xây dựng.

+1

Không bắt buộc phải xây dựng đường dẫn của nó. –

3

Bạn phải đặt tập tin gcm.jar bên libs, sau đó đi đến dự án Properties> Java Build Path> Libraries và thêm nó vào đường dẫn của bạn sử dụng Thêm lọ ngoài ..., sau khi trong thứ tự và xuất bạn kiểm tra gcm.jar và nhấn OK. Điều đó sẽ làm việc

10

gcm.jar của tôi là đã có trong libs, vì vậy nó không phải là một thư mục đặt tên vấn đề đối với tôi ..

tôi đã phải đi đến Right Click>Build Path>Configure Build path... cho dự án trong câu hỏi và tôi loại bỏ các sau:

  • Bất kỳ tập tin còn sót lại bên ngoài của một thư mục/bó
  • Android Private Libraries
  • Bất kỳ bó với từ 'tham khảo' trong đó (bạn có thể không có một)

Bạn có thể nhận được rất nhiều "lỗi" trong dự án của mình để khởi động lại Eclipse và để cho nó sạch sẽ. Một khi nó làm sạch bạn sẽ không có lỗi. Chạy dự án và viola của bạn.

Nhờ DLew cho câu trả lời này.

+1

Cảm ơn rất nhiều! câu trả lời này có thể đã không có phiếu bầu và được khá xa trang nhưng nó là một trong đó làm việc khi tất cả những người khác thất bại cho tôi! – Bltucker

+0

Câu trả lời của bạn là tuyệt vời và nó làm việc cho tôi. Cảm ơn Jackson và BLT – Sakthimuthiah

1

Tôi gặp sự cố tương tự, sau khi cập nhật SDK trong dự án của mình. nó đã giúp tôi: Tôi chỉ "thêm thư viện hỗ trợ" trong "công cụ Android". Hy vọng điều này sẽ giúp bất cứ ai khác.

1

nhớ cũng có cùng một vấn đề, sau khi thêm android-support-v4.jargcm.jar vào libs của tôi thư mục không có vấn đề tìm thấy công việc của mình như một nét duyên dáng

Cảm ơn

Các vấn đề liên quan