2012-08-22 25 views
14

Tôi nhận được lỗi này JNI ERROR (lỗi ứng dụng): truy cập cũ tham khảo toàn cầu Khi tôi chạy ứng dụng của tôi trong OS v4 Android, Nhưng khi tôi chạy cùng một ứng dụng trong Android v2.3 Tôi không nhận được lỗi này.Lỗi: JNI ERROR (lỗi ứng dụng): truy cập cũ tham khảo toàn cầu

Lỗi này xảy ra vào thời điểm mà tôi gọi là lớp AsyncTask, nơi tôi vượt qua một mảng chuỗi như là đối số

Bất cứ ai có thể giúp tôi ??

+2

Tôi nhớ đọc trong [tuyên bố phát hành Google cho các nhà phát triển] (http://android-developers.blogspot.ie/2011/11/jni-local-reference-changes-in-ics.html) ICS sẽ có xác minh chặt chẽ hơn về các lỗi đa luồng có thể xảy ra, có lẽ bạn chỉ gặp phải vấn đề đó? – skolima

Trả lời

14

Lỗi này xảy ra khi bạn gọi phương thức có loại thông số không chính xác.

Đảm bảo chữ ký phương thức khớp chính xác với những gì bạn đang truyền. Đối với một mảng chuỗi:

jmethodID mid = env->GetMethodID(cls, methodName, "([Ljava/lang/String;)V"); 

Nếu bạn đang tạo đó cho mình, nó sẽ giống như thế này:

jclass stringCls = env->FindClass("java/lang/String"); 
jobjectArray mStringArray = env->NewObjectArray(mSize, stringCls, NULL); 

Trong trường hợp cụ thể của bạn, bạn có khả năng không nhìn thấy vụ tai nạn trên Android 2.3 nhất vì bạn đang gọi AsyncTask.execute() không có sẵn cho đến khi API 11 (Android 3.0) và jmethodID của bạn là null. (Đó là một ý tưởng tốt để luôn kiểm tra jclass và jmethodID cho null sau khi nhận được chúng)

+0

Chỉ để tham khảo trong tương lai, tôi đã viết sai chính tả 'jlong' với' long', dẫn đến lỗi tương tự – ZdaR

2

Lỗi này xảy ra khi bạn gọi phương thức có loại tham số không chính xác.

Ngoài ra, trong trường hợp này, bạn có thể đăng ký phương thức gốc trên mã Java khác với mã gốc. Sự khác biệt có thể là bạn khai báo nhiều hoặc ít tham số giữa mã Java và mã nguồn gốc.

1
+0

@Crossle ... mate im new to android và phải đối mặt với cùng một vấn đề http://stackoverflow.com/questions/21423036/sqlite3- ngoại lệ-cơ sở dữ liệu-đĩa-hình ảnh-là-không đúng định dạng pls cho biết làm thế nào tôi có thể thực hiện mã của bạn .. im chỉnh sửa nó từ 3 tuần qua: ( – Gattsu