我还在尝试将ARCore用于另一个IDE(Visual Studio)中的原生Android应用,而不是Android Studio。这就是为什么我需要" DIY"事物的数量(比如在我的APK包中手动添加ARCore依赖项)。到目前为止,我取得了一些进展,但AR会话创建仍然失败。
首先,它给出了以下错误消息:
System.err:java.lang.RuntimeException:应用程序清单必须 包含元数据com.google.ar.core.min_apk_version System.err:at com.google.ar.core.SessionCreateJniHelper.getMinApkVersion(SessionCreateJniHelper.java:62) third_party / arcore / ar / core / android / sdk / session_create.cc:正在呼叫 getMinApkVersion失败。
我按照消息中给出的建议,在AndroidManifest.xml中添加以下行:
<meta-data android:name="com.google.ar.core.min_apk_version" android:value="24"/>
执行此操作后,第一个错误已解决,但会出现新错误:
[火焰输出/机器人-armeabi-V7A-OPT / genfiles / THIRD_PARTY / ARCORE / AR /型芯/机器人/ arcore_c_shim_function_impls.inc:375] 检查失败:表达式=&#39;&#34; false&#34;&#39;无法调用函数: ArSession_createImplementation,这个函数版本:171127000是 高于请求的min版本
我无法摆脱这个错误。有人知道它的原因吗?函数版本的含义是否高于请求的min版本?
答案 0 :(得分:2)
找到自己答案: ArCore 1.1要求以下元数据必须位于应用程序的AndroidManifest.xml中。请参阅ARCore的aar包中的AndroidManifest.xml。
<meta-data android:name="com.google.ar.core.min_apk_version" android:value="180226000" />
Android工作室会将此元数据合并到最终应用程序的ANdroidManifest.xml中,但Visual Studio不会进行任何清单合并。因此,解决方案是手动将其添加到清单中。 ARSession现已成功创建。
答案 1 :(得分:0)
我花了大约2天的时间让ArCore与Visual Studio一起工作(现在至少创建了AR会话)。我想分享一下如何“DIY”在除Android Studio以外的IDE中的原生Android应用程序中添加ARCore的经验:
您需要从maven存储库下载ARCore 1.1.0,搜索它然后单击“aar”链接以便下载完整的软件包。或者,您可以通过Android Studio构建示例应用程序“hello_ar_c”,然后在gralde缓存目录中找到aar包:“[user dir] .gradle \ _caches \ transforms-1 \ files-1.1 \ core-1.1.0.aar”
管理将ARCore共享库(libarcore_sdk_c.so)打包到“/ lib”下的应用程序的APK文件中。
通过DEX工具管理将ARCore java库(classes.jar)打包到应用程序的APK文件中。
在AndroidManifest.xml中手动添加元数据“min_apk_version”
第5步是最棘手的部分,因为ARCore指南没有提到这一点,Android Studio在合并清单后默默地添加它。
希望ArCore团队可以提供一些使用ARCore与其他IDE的指南。