2012-08-22 17 views
14

bu hatayı alıyorum JNI'yı HATA (uygulaması hatası): erişilen bayat küresel referans ı çalıştırdığınızda ben Android işletim sistemi v4 benim uygulamasını çalıştırın Ama ne zaman Android'de aynı uygulama v2.3 Bu hatayı almıyorum. BenHata: JNI'yı HATA (uygulaması hatası): erişilen bayat küresel referans

Herkes bana yardım Could argüman olarak bir dize dizisi geçmesi nerede

Bu hata, ben AsyncTask sınıf aramak noktada meydana ??

+2

(http://android-developers.blogspot.ie/2011/11/jni-local-reference-changes-in-ics.html) ICS'in olası çok iş parçacıklı hataların daha sıkı bir şekilde doğrulanacağını, belki de sadece buna çarptın? – skolima

cevap

14

Hatalı bir parametre türüne sahip bir yöntemi çağırdığınızda bu hata oluşur.

Yöntem imzanızın tam olarak geçirdiğinizle eşleştiğinden emin olun.

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

kendiniz oluşturuyorsanız, böyle görünecektir:: bir dize dizisi için

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

özel durumda, Android 2.3 üzerinde kazasında görmüyorsanız büyük olasılıkla çünkü API 11 (Android 3.0) 'a kadar mevcut olmayan ve jmethodID'niz boş olan AsyncTask.execute() öğesini çağırıyorsunuz. (Jclass ve jmethodID öğelerini her zaman kontrol ettikten sonra null olarak kontrol etmek iyi bir fikirdir)

+0

Sadece ileride başvurmak için 'jlong' ile yanlış yazılmış, aynı hatayla sonuçlandı – ZdaR

2

Hatalı bir parametre türüne sahip bir yöntemi çağırdığınızda bu hata oluşur. Bu durumda, yerel koddan farklı bir Java kodunda yerel yöntemi kaydettirebilirsiniz. Fark, Java kodu ve yerel kod arasında daha fazla veya daha az parametre bildirmeniz olabilir. Ben [geliştiriciler için Google bırakma açıklamada] okuma hatırlıyorum

1
+0

@Crossle ... android için yeni ve aynı soruna yanıt veriyor http://stackoverflow.com/questions/21423036/sqlite3- exception-database-disk-image-is-malformed nasıl kodunuzu uygulayabileceğimi söyleyin .. son 3 haftadan itibaren bunu düzeltiyorum :( – Gattsu