Wikitude Cordova 插件 - 处理 Android 和 iOS 错误
Wikitude Cordova Plugin - Handle Android and iOS errors
Wikitude Cordova 插件用于在我们基于 cordova 的应用程序中创建我们自己的增强现实。但是在添加插件并按照官方示例应用程序后,应用程序失败了,
在 android 中,app.wikitudePlugin.isDeviceSupported 失败并出现错误,
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.
是否有任何解决方法。如何解决 Android 和 iOS 问题?
Wikitude Cordova 插件
Wikitude is an Augmented Reality engine. And Wikitude Cordova Plugin 是一个用于 Cordova 的增强现实 SDK,可将增强现实体验嵌入到基于 PhoneGap 和 Cordova 的应用程序中。
注意:本文档适用于 com.wikitude.phonegap.wikitudeplugin
v 6.1.0。 其他版本未测试.
1。将插件添加到您的应用程序
打开一个控制台并转到您的项目目录和运行 cordova 插件添加命令
$ cordova plugin add https://github.com/Wikitude/wikitude-cordova-plugin.git
这会将插件添加到您的应用程序中。
运行 cordova prepare
使项目准备好按照 config.xml 构建
2。输入 Wikitude 许可证密钥
前往 License Page 并下载 Wikitude SDK 的个人许可证密钥。
要使用具有特定许可密钥的 Wikitude Cordova 插件,请使用 this._sdkKey
属性 中定义的 WikitudePlugin.js行13.
plugins\com.wikitude.phonegap.WikitudePlugin\www\WikitudePlugin.js
3。 Android: 处理 Wikitude 插件错误
在 android 中,app.wikitudePlugin.isDeviceSupported 可能会因错误而失败,
Attempt to invoke virtual method 'int org.json.JSONArray.length()' on a null object reference
通过向 WikitudePlugin.java
中的数组添加空检查来处理错误
plugins\com.wikitude.phonegap.WikitudePlugin\src\android\WikitudePlugin.java
第 755 行: 添加空检查 if(jsonArray != null){}
到 for (int i = 0; i < jsonArray.length(); i++) {}
4。更新平台
运行 以下命令使用 Wikitude 插件中所做的更改更新平台。它将删除并重新添加平台。
cordova platform remove android
cordova platform add android
cordova platform remove ios
cordova platform add ios
5。 iOS:允许使用相机
在 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.
使用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
NSCameraUsageDescription
Access to the camera is needed to display augmented reality content on top of your camera image.
6.创建您自己的增强现实体验
创建您自己的增强现实体验的步骤可在 Wikitude SDK Cordova documentation 中找到。
可以在 GitHub. Also the example Wikitude Cordova Plugin can be found on GitHub.
上找到使用 Wikitude SDK 可以完成的代码示例
对于isDeviceSupported
函数requiredFeatures
是可选的。但如果不提供它,该应用程序将无法在 iOS 上运行。所以一定要提供。
requiredFeatures: [ "2d_tracking", "geo" ],
...
app.wikitudePlugin.isDeviceSupported(app.onDeviceSupported, app.onDeviceNotSupported, app.requiredFeatures);
7。构建项目
运行以下命令将项目构建到特定平台
cordova build android
cordova build ios
有关构建应用程序的更多详细信息,请参阅 Cordova documentions, Android Platform Guide and iOS Platform Guide
注意:每个构建都需要#7。其余步骤仅在初始设置期间需要。
支持的设备
参考:https://www.wikitude.com/external/doc/documentation/latest/phonegap/supporteddevices.html
Android 设备要求:
- Android 4.0.3+
- 指南针
- 加速度计
- 高分辨率设备 (hdpi)
- 后置摄像头
- OpenGL 2.0
- 具有四核 CPU 或更高
的设备
支持的 iOS 设备:
- iPhone 5 或更新
- iPad(第 4 代)或更高版本
- iPod Touch(第 6 代)或更新机型
参考
Wikitude Cordova 插件:https://www.wikitude.com/external/doc/documentation/latest/phonegap/
注:
步骤#3 解决了 Android 问题,步骤#5 解决了 iOS 问题。
Wikitude Cordova 插件用于在我们基于 cordova 的应用程序中创建我们自己的增强现实。但是在添加插件并按照官方示例应用程序后,应用程序失败了,
在 android 中,app.wikitudePlugin.isDeviceSupported 失败并出现错误,
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.
是否有任何解决方法。如何解决 Android 和 iOS 问题?
Wikitude Cordova 插件
Wikitude is an Augmented Reality engine. And Wikitude Cordova Plugin 是一个用于 Cordova 的增强现实 SDK,可将增强现实体验嵌入到基于 PhoneGap 和 Cordova 的应用程序中。
注意:本文档适用于 com.wikitude.phonegap.wikitudeplugin
v 6.1.0。 其他版本未测试.
1。将插件添加到您的应用程序
打开一个控制台并转到您的项目目录和运行 cordova 插件添加命令
$ cordova plugin add https://github.com/Wikitude/wikitude-cordova-plugin.git
这会将插件添加到您的应用程序中。
运行 cordova prepare
使项目准备好按照 config.xml 构建
2。输入 Wikitude 许可证密钥
前往 License Page 并下载 Wikitude SDK 的个人许可证密钥。
要使用具有特定许可密钥的 Wikitude Cordova 插件,请使用 this._sdkKey
属性 中定义的 WikitudePlugin.js行13.
plugins\com.wikitude.phonegap.WikitudePlugin\www\WikitudePlugin.js
3。 Android: 处理 Wikitude 插件错误
在 android 中,app.wikitudePlugin.isDeviceSupported 可能会因错误而失败,
Attempt to invoke virtual method 'int org.json.JSONArray.length()' on a null object reference
通过向 WikitudePlugin.java
中的数组添加空检查来处理错误plugins\com.wikitude.phonegap.WikitudePlugin\src\android\WikitudePlugin.java
第 755 行: 添加空检查 if(jsonArray != null){}
到 for (int i = 0; i < jsonArray.length(); i++) {}
4。更新平台
运行 以下命令使用 Wikitude 插件中所做的更改更新平台。它将删除并重新添加平台。
cordova platform remove android
cordova platform add android
cordova platform remove ios
cordova platform add ios
5。 iOS:允许使用相机
在 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.
使用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
NSCameraUsageDescription Access to the camera is needed to display augmented reality content on top of your camera image.
6.创建您自己的增强现实体验
创建您自己的增强现实体验的步骤可在 Wikitude SDK Cordova documentation 中找到。
可以在 GitHub. Also the example Wikitude Cordova Plugin can be found on GitHub.
上找到使用 Wikitude SDK 可以完成的代码示例对于isDeviceSupported
函数requiredFeatures
是可选的。但如果不提供它,该应用程序将无法在 iOS 上运行。所以一定要提供。
requiredFeatures: [ "2d_tracking", "geo" ],
...
app.wikitudePlugin.isDeviceSupported(app.onDeviceSupported, app.onDeviceNotSupported, app.requiredFeatures);
7。构建项目
运行以下命令将项目构建到特定平台
cordova build android
cordova build ios
有关构建应用程序的更多详细信息,请参阅 Cordova documentions, Android Platform Guide and iOS Platform Guide
注意:每个构建都需要#7。其余步骤仅在初始设置期间需要。
支持的设备
参考:https://www.wikitude.com/external/doc/documentation/latest/phonegap/supporteddevices.html
Android 设备要求:- Android 4.0.3+
- 指南针
- 加速度计
- 高分辨率设备 (hdpi)
- 后置摄像头
- OpenGL 2.0
- 具有四核 CPU 或更高 的设备
- iPhone 5 或更新
- iPad(第 4 代)或更高版本
- iPod Touch(第 6 代)或更新机型
参考
Wikitude Cordova 插件:https://www.wikitude.com/external/doc/documentation/latest/phonegap/
注:
步骤#3 解决了 Android 问题,步骤#5 解决了 iOS 问题。