将ARCore 1.1.0与NativeActivity一起使用并与其他IDE一起构建(Visual Studio 2015/2017)

时间:2018-04-13 18:38:44

标签: android arcore native-activity

我还在尝试将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版本?

2 个答案:

答案 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的经验:

  1. 您需要从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”

  2. 管理将ARCore共享库(libarcore_sdk_c.so)打包到“/ lib”下的应用程序的APK文件中。

  3. 通过DEX工具管理将ARCore java库(classes.jar)打包到应用程序的APK文件中。

  4. 按照ARCore guide

  5. 在AndroidManifext.xml中为您的应用启用ARCore
  6. 在AndroidManifest.xml中手动添加元数据“min_apk_version”

  7. 第5步是最棘手的部分,因为ARCore指南没有提到这一点,Android Studio在合并清单后默默地添加它。

    希望ArCore团队可以提供一些使用ARCore与其他IDE的指南。