Google在Android NDK内部支持Google测试(请参阅https://android.googlesource.com/platform/ndk.git/+/master/sources/third_party/googletest/README.NDK)。这非常有效。实际上,您可以通过这种方式在Android设备上创建和运行本机C ++可执行文件。
问题是似乎没有办法运用JNI代码。 Android NDK不允许使用这些非常有用的功能:
/*
* VM initialization functions.
*
* Note these are the only symbols exported for JNI by the VM.
*/
#if 0 /* In practice, these are not exported by the NDK so don't declare them */
jint JNI_GetDefaultJavaVMInitArgs(void*);
jint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*);
jint JNI_GetCreatedJavaVMs(JavaVM**, jsize, jsize*);
#endif
我在jni.h中看到的另一种获取JavaVM的方法是通过JNI_OnLoad
,但只能从Java加载的共享库中调用它。
有什么方法吗?
在我的情况下,我不想通过Android测试框架调用我的Google测试。我想使用Google Test作为我所有跨平台单元测试的驱动程序。