2012-11-24 36 views
6

Tôi đang tạo ứng dụng Android trong ADT v21.0.0. Ứng dụng này cần phải sử dụng một thư viện protobuf tôi đã biên dịch thành một cái lọ.Java Protobuf trong Android - NoClassDefFoundError

Bằng cách đặt jar này cũng như protobuf-java-2.4.1.jar vào thư mục/libs của tôi, Eclipse nhận ra lúc xây dựng, tuy nhiên bất cứ khi nào tôi cố gắng chạy ứng dụng trong trình giả lập Android của tôi, tôi nhận được NoClassDefFoundError ngoại lệ khi cố gắng khởi tạo một trong các lớp tùy chỉnh được tạo tự động do trình biên dịch protobuf tạo ra.

Tôi đã thấy rất nhiều mẹo liên quan đến việc đặt tên cho thư mục/libs (dường như bản cập nhật ADT trước đã phá vỡ điều này bằng cách yêu cầu thư mục/lib thành/libs), cũng như thêm .jars rõ ràng từ " Cửa sổ cài đặt Java Build Path (và kiểm tra các lọ trong ngăn Order and Export).

Không ai trong số này đã giúp, tuy nhiên, và tôi tự hỏi nếu có điều gì đó cơ bản hơn ngăn cản các lớp protobuf của tôi không được nhận ra khi chạy.

Lưu ý: nếu tôi tạo một ứng dụng Java chuẩn trong Eclipse, tôi có thể sử dụng các lớp proto của tôi tốt. Đây chỉ là vấn đề khi chạy ứng dụng Android.

+1

Vui lòng cập nhật câu hỏi của bạn để bao gồm tên đầy đủ của lớp mà không được tìm thấy. –

+0

Đó là một lớp tùy chỉnh được tạo tự động từ thông số thư protobuf của tôi, vì vậy tôi không chắc liệu nó có giúp ích hay không. Tuy nhiên, tôi đã chỉnh sửa bài đăng để nói trực tiếp điều này. Cảm ơn! – ricklane

+0

Vui lòng thêm dấu vết ngăn xếp in trong bài đăng của bạn. – Visruth

Trả lời

0

vẻ như dự án của bạn nhập khẩu một số thư viện những gì tự động tạo ra jar depends..and của bạn không phải là trên thiết bị hoặc giả lập ..

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