Android 未定义Worklight 6.2文件上载选项

Android 未定义Worklight 6.2文件上载选项,android,cordova,ibm-mobilefirst,Android,Cordova,Ibm Mobilefirst,我正在使用Worklight 6.2,我正在尝试从Android 4.0.3的Android设备上的摄像头上传图像,但每当我运行此代码时,它都无法完成上传 代码如下: function sendReportImage(reportID){ WL.Logger.debug("Submitting report image: " + imageURI); var options = new FileUploadOptions(); options.fileKey="file"; opt

我正在使用Worklight 6.2,我正在尝试从Android 4.0.3的Android设备上的摄像头上传图像,但每当我运行此代码时,它都无法完成上传

代码如下:

function sendReportImage(reportID){
    WL.Logger.debug("Submitting report image: " + imageURI);

var options = new FileUploadOptions();

options.fileKey="file"; 
options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
options.mimeType="image/jpeg";
options.chunkedMode=false;

WL.Logger.debug("options" + options);

var ft = new FileTransfer();
ft.upload(imageURI, encodeURI(host + "/reports/"+reportID+"/contents"), imageUploadSuccess, imageUploadFail, options);
但它甚至没有到达FileTransfer线路,它在FileUploadOptions上停止,显示以下日志:

07-21 19:34:43.835: D/CordovaLog(6185):          file:///data/data/com.my_program/files/www/default/worklight/cordova.js: Line 1036 : processMessage failed: Message: S01 StoragePlugin137844502 n1
07-21 19:34:43.835: I/Web Console(6185): processMessage failed: Message: S01 StoragePlugin137844502 n1 at file:///data/data/com.my_program/files/www/default/worklight/cordova.js:1036
07-21 19:34:43.867: D/CordovaLog(6185): file:///data/data/com.my_program/files/www/default/worklight/cordova.js: Line 1037 : processMessage failed: Error: ReferenceError: FileUploadOptions is not defined
07-21 19:34:43.867: I/Web Console(6185): processMessage failed: Error: ReferenceError: FileUploadOptions is not defined at file:///data/data/com.my_program/files/www/default/worklight/cordova.js:1037
07-21 19:34:43.898: D/dalvikvm(6185): GC_CONCURRENT freed 147K, 48% free 7679K/14535K, paused 2ms+3ms
07-21 19:34:43.898: D/CordovaLog(6185): file:///data/data/com.my_program/files/www/default/worklight/cordova.js: Line 1038 : processMessage failed: Stack: ReferenceError: FileUploadOptions is not defined
07-21 19:34:43.898: D/CordovaLog(6185):     at sendReportImage (file:///data/data/com.my_program/files/www/default/js/report.js:206:2)
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/js/report.js:181:5)
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1202:33)
07-21 19:34:43.898: D/CordovaLog(6185):     at file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1047:30
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.resolveWith (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1158:7)
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.resolve (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1247:33)
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/worklight/jsonstore.js:4007:28)
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1202:33)
07-21 19:34:43.898: D/CordovaLog(6185):     at file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1047:30
07-21 19:34:43.898: D/CordovaLog(6185):     at Object.resolveWith (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1158:7)
07-21 19:34:43.898: I/Web Console(6185): processMessage failed: Stack: ReferenceError: FileUploadOptions is not defined
07-21 19:34:43.898: I/Web Console(6185):     at sendReportImage (file:///data/data/com.my_program/files/www/default/js/report.js:206:2)
07-21 19:34:43.898: I/Web Console(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/js/report.js:181:5)
07-21 19:34:43.898: I/Web Console(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1202:33)
07-21 19:34:43.898: I/Web Console(6185):     at file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1047:30
07-21 19:34:43.898: I/Web Console(6185):     at Object.resolveWith (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1158:7)
07-21 19:34:43.898: I/Web Console(6185):     at Object.resolve (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1247:33)
07-21 19:34:43.898: I/Web Console(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/worklight/jsonstore.js:4007:28)
07-21 19:34:43.898: I/Web Console(6185):     at Object.<anonymous> (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1202:33)
07-21 19:34:43.898: I/Web Console(6185):     at file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1047:30
07-21 19:34:43.898: I/Web Console(6185):     at Object.resolveWith (file:///data/data/com.my_program/files/www/default/worklight/wljq.js:1158:7) at file:///data/data/com.my_program/files/www/default/worklight/cordova.js:1038

有任何关于如何修复的提示吗?

请尝试以下操作:在生成的Android项目中,在assets\www\default\worklight\cordova\u plugins.js下,查找并替换:

- "file": "plugins/org.apache.cordova.file/www/FileUploadOptions.js",
+ "file": "plugins/org.apache.cordova.file/www/fileuploadoptions.js",
此外, 请参见此问题和答案:

存储插件的声明存在已知缺陷,这可能是根本原因。 作为一种解决方法,您需要打开config.xml并按如下方式对其进行修改:

- com.worklight.androidgap.plugin.storage.StoragePlugin
+ com.worklight.androidgap.plugin.StoragePlugin
cordova.define("org.apache.cordova.file.FileUploadOptions", function(require, exports, module) {
请让我们知道,如果,以及其中,上述可能都需要帮助你。
如果您是IBM客户或业务合作伙伴,则需要打开PMR以接收包含此问题修复程序的iFix。

现在它可以工作了,下面是我必须做的:

在生成的Android项目上找到文件assets/www/default/plugins/org.apache.cordova.file/www/FileUploadOptions.js并打开它。 在FileUploadOptions.js文件代码的顶部有如下内容:

cordova.define("org.apache.cordova.file.FileUploadOptions1", function(require, exports, module) {
将此代码更改如下:

- com.worklight.androidgap.plugin.storage.StoragePlugin
+ com.worklight.androidgap.plugin.StoragePlugin
cordova.define("org.apache.cordova.file.FileUploadOptions", function(require, exports, module) {

保存文件并选择运行方式>Android应用程序。现在没有错误。

资产文件夹下是否有以下文件?AndroidProject/assets/www/default/worklight/plugins/org.apache.cordova.file/www/FileUploadOptions.js另外,这是在6.2中创建的新应用程序,还是从以前的worklight版本升级而来的?不,没有这样的文件。它已升级。StoragePlugin部分已完成,但在assets\www下我只找到一个名为resources.zip.unencrypted.001的文件。没有默认文件夹。听起来您使用了application-descriptor.xml中的加密web资源选项;您将无法访问默认文件夹,因为您已对其进行了加密。在application-descriptor.xml中,此选项如下:此文件夹仅在我的iphone环境中。我在此处未看到此选项;请使用新项目和应用程序再试一次。好吧,我再次使用Android环境,现在文件夹已经存在。我替换了您所说的内容,但仍然不在这里工作。它一直说cordova.js上没有定义FileUploadOptions。这只是一个解决办法,因为下次您将在Worklight Studio中构建项目时,您编辑的文件将恢复到原来的状态,并出现错误。如果您是IBM客户,则需要打开PMR以接收固定版本。我已经为这个问题打开了一个缺陷,感谢更深入的调查。