Wikitude Cordova插件 - 处理Android和iOS错误



Wikitude Cordova插件用于在基于Cordova的应用程序中创建我们自己的增强现实。但是在添加插件并遵循官方示例后,应用程序失败了,

  • 在 android 中,app.wikitudePlugin.isDeviceSupport 失败并显示错误,

    Attempt to invoke virtual method 'int org.json.JSONArray.length()' on a null object reference

  • 在iOS中,应用程序崩溃并显示错误,

    This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

有什么解决方法吗?如何解决安卓和iOS问题?

Wikitude Cordova插件

Wikitude是一个增强现实引擎。Wikitude Cordova插件是Cordova的增强现实SDK,可将增强现实体验嵌入到基于PhoneGap和Cordova的应用程序中。

注意:本文档适用于com.wikitude.phonegap.wikitudepluginv 6.1.0其他版本未进行测试

1. 将插件添加到您的应用程序中

打开控制台并转到您的项目目录并运行 cordova 插件 add 命令

$ cordova plugin add https://github.com/Wikitude/wikitude-cordova-plugin.git

这会将插件添加到您的应用程序中。

运行cordova prepare以使项目准备好根据配置进行构建.xml

2. 输入维基许可证密钥

转到许可证页面并下载您的个人许可证密钥用于Wikitude SDK。

要将Wikitude Cordova插件与特定的许可证密钥一起使用,请使用WikitudePlugin.js13行中定义的this._sdkKey属性。

plugins\com.wikitude.phonegap.WikitudePlugin\www\WikitudePlugin.js

3.安卓:处理维基插件错误

在 android 中,app.wikitudePlugin.isDeviceSupport 可能会失败并显示错误,

尝试在空对象引用上调用虚拟方法 'int org.json.JSONArray.length(('

通过在WikitudePlugin中的数组中添加空检查来处理错误.java

plugins\com.wikitude.phonegap.WikitudePlugin\src\android\WikitudePlugin.java

第 755 行: for (int i = 0; i < jsonArray.length(); i++) {}添加空检查if(jsonArray != null){}

4. 更新平台

运行以下命令,使用维基插件中所做的更改更新平台。它将删除并重新添加平台。

cordova platform remove android cordova platform add android cordova platform remove ios cordova platform add ios

5. iOS:允许相机使用

在iOS中,应用程序可能会崩溃并显示错误,

此应用已崩溃,因为它尝试在没有使用说明的情况下访问隐私敏感数据。 应用的 Info.plist 必须包含一个 NSCameraUsageDescription 键和一个字符串值,向用户解释应用如何使用此数据。

使用 PlistBuddy 修改应用的 plist 文件。

从 Mac 运行以下命令

$ /usr/libexec/PlistBuddy -c "Add :NSCameraUsageDescription string 'Access to the camera is needed to display augmented reality content on top of your camera image.'" "platforms/ios/"${PROJECT_NAME}"/"${PROJECT_NAME}"-Info.plist"

或者,您可以手动将以下条目添加到platforms/ios/"${PROJECT_NAME}"/"${PROJECT_NAME}"-Info.plist

NSCamera用法说明 需要访问相机才能在相机图像顶部显示增强现实内容。

6.创建您自己的增强现实体验

创建自己的增强现实体验的步骤可以在Wikitude SDK Cordova文档中找到。

使用Wikitude SDK可以做什么的代码示例可以在GitHub上找到。Wikitude Cordova插件的例子也可以在GitHub上找到。

对于isDeviceSupported函数requiredFeatures是可选的。但是,如果不提供它,该应用程序将无法在iOS上运行。因此,请确保您提供它。

requiredFeatures: [ "2d_tracking", "geo" ], ... app.wikitudePlugin.isDeviceSupported(app.onDeviceSupported, app.onDeviceNotSupported, app.requiredFeatures);

7. 构建项目

运行以下命令以将项目生成到特定平台 cordova build android cordova build ios

有关构建应用程序的更多详细信息,请参阅 Cordova 文档、Android 平台指南和 iOS 平台指南

注意:每个构建都需要 #7。其余步骤仅在初始设置期间需要。

支持的设备

参考: https://www.wikitude.com/external/doc/documentation/latest/phonegap/supporteddevices.html

安卓设备要求:
  • 安卓 4.0.3+
  • 指南针
  • 加速度计
  • 高分辨率设备
  • 后置摄像头
  • OpenGL 2.0
  • 具有四核或更高 CPU 的设备
支持的 iOS 设备:
  • iPhone 5 或更新机型
  • iPad(第 4 代(或更高版本
  • iPod Touch(第 6 代(或更高版本

参考

Wikitude Cordova插件:https://www.wikitude.com/external/doc/documentation/latest/phonegap/

注意:

Step#3解决了Android问题,Step#5解决了iOS问题。

遵循可以提出和回答自己的问题

最新更新