从C共享库调用后获取android服务

时间:2018-03-05 11:51:45

标签: java android service java-native-interface

我需要从C共享库调用Java函数。这很好用。 但是在该被调用函数中有一些android服务的初始化,这是我的问题。

导致错误:

  

在onCreate()

之前,活动无法使用系统服务

当我删除第一行并将其提交给OnCreate()时,它会在下一行崩溃

错误:

  

尝试调用虚方法' android.content.Intent android.media.projection.MediaProjectionManager.createScreenCaptureIntent()'在null对象引用上。

我是android和JNI的新手,我必须这样做:(

 public void requestMediaProjection() 
 {        
     try 
    {

          mMediaProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
        //startActivityForResult(permissionIntent, REQUEST_CODE_CAPTURE_PERM);
         startActivityForResult(mMediaProjectionManager.createScreenCaptureIntent(),
         REQUEST_CODE_REQUEST_MEDIA_PROJECTION_RESULT);                
     } catch (NoClassDefFoundError e) 
     {
        String err = e.toString();
     } catch (Throwable t) 
     {
         String err = t.toString();
     }        
 }

这是我用C调用Java方法的代码:

 jobject objx = (*g_Env)->NewObject(g_Env, cls,mid);
  (*g_Env)->CallVoidMethod(g_Env, objx, mid);

0 个答案:

没有答案