Java 在Android捆绑包中发送OpenCV Mat

Java 在Android捆绑包中发送OpenCV Mat,java,android,opencv,android-intent,bundle,Java,Android,Opencv,Android Intent,Bundle,我想将org.opencv.core.Mat对象打包发送。我决定使用Gson,因为它看起来简单快捷 父活动: public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.areas_creator_activity: Gson gs = new Gson(); String stringBackgr

我想将org.opencv.core.Mat对象打包发送。我决定使用Gson,因为它看起来简单快捷

父活动:

public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
        case R.id.areas_creator_activity:
            Gson gs = new Gson();
            String stringBackground = gs.toJson(guard.getBackground());
            Intent intentAreasCreatorActivity = new Intent(MainActivity.this, AreasCreatorActivity.class);
            intentAreasCreatorActivity.putExtra("background", stringBackground);
            startActivityForResult(intentAreasCreatorActivity,2);
            break;
      }
        return true;

 }
儿童活动:

public void onResume()
{
    super.onResume();

    String jsonMyObject= new String();
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
       jsonMyObject = extras.getString("myObject");
    }
    Gson gs = new Gson();
    Mat myObject = gs.fromJson(jsonMyObject, Mat.class);
    background=myObject;
    //Log.i("@string/app_name", background.toString());        
}
LogCat

    05-05 19:59:12.286: E/AndroidRuntime(7961): FATAL EXCEPTION: main
    05-05 19:59:12.286: E/AndroidRuntime(7961): java.lang.RuntimeException: Unable to resume activity {pl.net.lach.pracainz/pl.net.lach.pracainz.AreasCreatorActivity}: java.lang.NullPointerException

当我在背景对象上使用Mat metod时有一个问题(注释行)。怎么了

Mat包含一个本地C++对象(指向CV::MAT的指针)。我不认为,您可以使用gson序列化它,当您打印json时,它看起来如何?在父活动中:
05-05 21:23:19.892:INFO/@string/app_name(15577):stringBackground={“nativeObj”:1556479152}
在Child中为空。你的建议是什么?我可能完全错了,但是原始的垫子可能在这段时间内被gc’ed了,留下一个悬垂的指针给你什么是好的解决方案?将其转换为位图?