Android NativeActivity和ARCore C库:函数“;ArSession_create();在本机活动中调用时失败
我正试图在NativeActivity中通过ARCore C库创建AR会话。 但是,函数“ArSession\u create()”始终返回错误代码AR\u error\u FATAL(-2),但没有未创建AR会话的崩溃表达式。以下是代码片段:Android NativeActivity和ARCore C库:函数“;ArSession_create();在本机活动中调用时失败,android,android-ndk,arcore,native-activity,Android,Android Ndk,Arcore,Native Activity,我正试图在NativeActivity中通过ARCore C库创建AR会话。 但是,函数“ArSession\u create()”始终返回错误代码AR\u error\u FATAL(-2),但没有未创建AR会话的崩溃表达式。以下是代码片段: // Get the Android activity by a global variable, which is recorded // in the NDK glue library function "void ANativeActivity_o
// Get the Android activity by a global variable, which is recorded
// in the NDK glue library function "void ANativeActivity_onCreate()"
// by the function's first passed-in parameter
ANativeActivity* activity = _global_android_activity;
//Get the JNI Env for the current thread
JNIEnv* env = NULL;
JavaVM* vm = activity->vm;
int r = vm->AttachCurrentThread(&env, NULL);
//Create AR session
ArSession* arSession = nullptr;
ArStatus status = ArSession_create(env, activity->clazz, &arSession);
if (status != ArStatus::AR_SUCCESS)
CONSOLE_PRINTF(L"@@@@@@@@@@@@@@@ Failed to create AR session!, Result = %d", status);
else
CONSOLE_PRINTF(L"@@@@@@@@@@@@@@@ Succeeded to create AR session!");
Android Logcat错误消息:
04-12 22:06:10.084 24454-24473/com.omnigsoft.gameenginedemo E/third_party/redwood/base/jni_common/src/class_util.cc: Failed to find class com/google/ar/core/SessionCreateJniHelper using custom class loader.
04-12 22:06:10.085 24454-24473/com.omnigsoft.gameenginedemo E/third_party/arcore/ar/core/android/sdk/session_create.cc: Failed to load SessionCreateJniHelper class.
我已确认我已在AndroidManifest.xml文件中为我的Android本机应用程序启用AR,具体操作如下:
- minSdkVersion设置为24
- 添加权限“android.permission.CAMERA”
- 添加了ARCore元数据:android:name=“com.google.ar.core”
是否有人成功地将ARCode C库与NativeActivity一起使用?谢谢你的建议。我终于知道了原因,所以我想自己回答这个问题 为了在Android应用程序中手动使用ARCore和其他IDE,而不是Android Studio,我们需要做以下几件事:
使用Android Studio开发ARCore应用程序似乎是目前唯一舒适的方式。最后我找到了原因,所以我想自己回答这个问题 为了在Android应用程序中手动使用ARCore和其他IDE,而不是Android Studio,我们需要做以下几件事:
似乎使用Android Studio进行ARCore应用程序开发是目前唯一舒适的方式。在将示例嵌入到示例框架时,我也遇到了一个确切的错误:“未能使用自定义类加载器找到com/google/ar/core/SessionCreateJniHelper类”,然后是“未能加载SessionCreateJniHelper类”(使用Android Studio时)
这个场景中的问题是AndroidManifest.xml中的android:hasCode=“false”指令。即使在基于NativeActivity的应用程序中没有任何Java代码,ARCore中的链接也会添加Java代码,因此在这种情况下,需要删除android:hasCode=“false”指令。我也遇到了这个确切的错误将示例嵌入到示例框架时(使用Android Studio时),“未能使用自定义类加载器找到com/google/ar/core/SessionCreateJniHelper类”,然后是“未能加载SessionCreateJniHelper类”
该场景中的问题是AndroidManifest.xml中的android:hasCode=“false”指令。即使在基于NativeActivity的应用程序中没有任何Java代码,ARCore中的链接也会添加Java代码,因此在这种情况下,android:hasCode=“false”“需要删除指令。要确认:您没有收到可以检查的
ArStatus
?从代码“ArStatus status=ArSession\u create(env,activity->clazz,&ArSession);”中,我可以说fnction将值AR\u ERROR\u FATAL(-2)返回到status。我想我们需要关注错误消息“找不到com/google/ar/core/SessionCreateJniHelper类"找到答案。有人知道这个错误消息吗?可能相关?请注意,确定它是否适用于您的场景。嗨,stkent,我正在使用visual studio 2015构建我的原生android应用程序,因此构建过程中没有Proguard,谢谢。确认一下:您没有收到可以插入的ArStatus
ct?从代码“ArStatus status=ArSession_create(env,activity->clazz,&ArSession);”中,我可以说fnction将值AR_ERROR_FATAL(-2)返回到status。我想我们需要关注错误消息“未能找到类com/google/AR/core/SessionCreateJniHelper”找到答案。有人知道这个错误消息吗?可能相关?请注意,确定它是否适用于您的场景。嗨,stkent,我正在使用visual studio 2015构建我的本机android应用程序,因此构建过程中没有Proguard,谢谢。