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问题?
答案 0 :(得分:0)
Wikitude是一个增强现实引擎。 Wikitude Cordova Plugin是Cordova的增强现实SDK,可将增强现实体验嵌入到基于PhoneGap和Cordova的应用程序中。
注意:本文档适用于com.wikitude.phonegap.wikitudeplugin
v 6.1.0 。 其他版本未经过测试。
打开控制台并转到项目目录并运行cordova插件添加命令
$ cordova plugin add https://github.com/Wikitude/wikitude-cordova-plugin.git
这会将插件添加到您的应用程序中。
运行cordova prepare
以使项目准备好按照 config.xml
转到License Page并下载Wikitude SDK的个人许可密钥。
要将Wikitude Cordova插件与特定许可密钥一起使用,请使用 WikitudePlugin.js 行 13中定义的this._sdkKey
属性强> 的
插件\ com.wikitude.phonegap.WikitudePlugin \ WWW \ WikitudePlugin.js
在android中,app.wikitudePlugin.isDeviceSupported可能会因错误而失败,
尝试在空对象引用上调用虚方法'int org.json.JSONArray.length()'
通过向 WikitudePlugin.java
中的数组添加空检查来处理错误插件\ com.wikitude.phonegap.WikitudePlugin \ SRC \机器人\ WikitudePlugin.java
第755行: 向if(jsonArray != null){}
for (int i = 0; i < jsonArray.length(); i++) {}
运行以下命令以使用Wikitude插件中所做的更改来更新平台。它将删除并添加平台。
cordova platform remove android
cordova platform add android
cordova platform remove ios
cordova platform add 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
NSCameraUsageDescription 需要访问相机才能在相机图像上显示增强现实内容。
可以在Wikitude SDK Cordova documentation中找到创建自己的增强现实体验的步骤。
可以在GitHub上找到使用Wikitude SDK可以完成的代码示例。此外,可以在GitHub上找到示例Wikitude Cordova插件。
isDeviceSupported
函数requiredFeatures
是可选的。但是如果不提供它,该应用程序将不适用于iOS。所以一定要提供它。
requiredFeatures: [ "2d_tracking", "geo" ],
...
app.wikitudePlugin.isDeviceSupported(app.onDeviceSupported, app.onDeviceNotSupported, app.requiredFeatures);
运行以下命令以将项目构建到特定平台
cordova build android
cordova build ios
有关构建应用的详细信息,请参阅Cordova documentions,Android Platform Guide和iOS Platform Guide
注意:每次构建都需要#7。其余步骤仅在初始设置期间需要。
参考:https://www.wikitude.com/external/doc/documentation/latest/phonegap/supporteddevices.html
Android设备要求:Wikitude Cordova插件:https://www.wikitude.com/external/doc/documentation/latest/phonegap/
步骤#3解决了Android问题,步骤#5解决了iOS问题。