Возвращение HashMap из нативного метода - PullRequest
0 голосов
/ 20 ноября 2018

Мне нужно вернуть HashMap из собственной реализации Android.При запуске приложения я получаю следующее падение:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0

Ниже приведены подробности реализации.

Подпись метода на стороне Java:

private native HashMap<String, Double> testBitmapJNI(Bitmap bitmap);

в коде C ++:

static const JNINativeMethod g_NativeMethods[] = {
     ....
     {"testBitmapJNI", "(Landroid/graphics/Bitmap;)Ljava/util/HashMap;", 
         (void*)testBitmapJNI},
     ....
 };



jobject testBitmapJNI(JNIEnv* env, jobject instance, jobject bitmap){

   jobject myHashMap= ... 

   /* every thing is working good here */
   return myHashMap;
}

Если я изменю сигнатуру testBitmapJNI для возврата void, он больше не падает.Я считаю, что подпись в таблице сопоставления неверна.Было бы замечательно, если бы кто-то мог предложить правильную подпись для использования в таблице или другой подход, чтобы исправить / реализовать то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...