我需要从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);