使用JNI和Android NDK进行Google测试

时间:2015-12-10 18:37:44

标签: android c++ android-ndk java-native-interface googletest

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作为我所有跨平台单元测试的驱动程序。

见类似: Unit testing on Android NDK

0 个答案:

没有答案