[Android] JNI.createStaticMethod открытие галереи девайса - приложение временами зависает

Здравствуйте
Я хочу дать возможность пользователю выбрать фото из галереи девайса.

Вот так я запускаю метод в java activity

jni_get_gallery_method = JNI.createStaticMethod("dev/div0/RailDesigner/MainActivity", "getGallery", "(Lorg/haxe/nme/HaxeObject;)V", true);
 jni_get_gallery_method([this]);

MainActivity.java

package ::APP_PACKAGE::;

 import android.app.Activity;
 import android.os.Bundle;
 import android.content.Intent;
 import android.util.Log;
 import android.net.Uri;

 import android.provider.MediaStore;
 import android.database.Cursor;

 import java.io.IOException;
 import java.io.InputStream;
 import java.io.ByteArrayOutputStream;

 import org.haxe.nme.HaxeObject;

 public class MainActivity extends org.haxe.nme.GameActivity {
 static HaxeObject callback;

 public static void getGallery(HaxeObject cb){
 Log.d("log_tag", "get_gallery()" );
 callback=cb;
 Log.d("log_tag", "callback="+callback);
 Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
 photoPickerIntent.setType("image/*");
 getInstance().startActivityForResult(photoPickerIntent, 1);
 }

 protected void onActivityResult(int requestCode, int resultCode, Intent data)
 {
 super.onActivityResult(requestCode, resultCode, data);
 Log.d("log_tag", "onActivityResult resultCode="+resultCode);
 Log.d("log_tag", "callback="+callback);

 if (resultCode == RESULT_OK)
 {
 final Uri chosenImageUri = data.getData();
 Log.d("log_tag", "image="+getRealPathFromURI(chosenImageUri));

 callback.call("deviceGalleryFileSelectCallback", new Object[] {getRealPathFromURI(chosenImageUri)});

 /*
 org.haxe.nme.GameActivity.getInstance().runOnUiThread(new Runnable() {
 public void run() {
 callback.call("deviceGalleryFileSelectCallback", new Object[] {getRealPathFromURI(chosenImageUri)});
 }
 });
 */

 }
 else
 {
 Log.d("log_tag", "Activity error result ");
 }
 }

 private final String getRealPathFromURI(Uri contentUri) {
 String[] proj = { MediaStore.Images.Media.DATA };
 Cursor cursor = managedQuery(contentUri, proj, null, null, null);
 int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
 cursor.moveToFirst();
 return cursor.getString(column_index);
 }

 }

Активити возвращает путь к файлу на SD карте
Иногда в обработчике onActivityResult значение статической переменной callback есть, а иногда оно равно null

Вот java лог

 02-18 00:38:28.527: D/log_tag(1524): get_gallery()
 02-18 00:38:28.528: D/log_tag(1524): callback=org.haxe.nme.HaxeObject@4056a240
 02-18 00:38:43.311: D/log_tag(1628): onActivityResult resultCode=-1
 02-18 00:38:43.312: D/log_tag(1628): callback=null
 02-18 00:38:43.335: D/log_tag(1628): image=/mnt/sdcard/DCIM/Camera/IMG_20121001_121422.jpg

Это первая проблема.

Вторая:
Даже если активити отработала правильно и отдала путь на SD карте, приложение через полминуты замержает, и вываливается
"Извините. Приложение не отвечает". Может быть как-то нужно активити эту "убивать" ? Если да, то как ?

Кто-нибудь знает где я ошибся ?