gpt4 book ai didi

android - Cordova 3.4 中的 requestFileSystem 失败并出现 "Class not found"错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:22 25 4
gpt4 key购买 nike

希望任何人都能解决这个问题,整天都在与这个问题作斗争。我试图浏览文件系统上的文件夹以选择一个文件,但我似乎无法连接到文件系统。

每当我调用“window.requestFileSystem”时,错误回调都会返回“找不到类”错误。进入 Cordova 的“requestFileSystem”函数,我注意到在 exec() 调用期间返回了“未找到类”(我无法跟踪它)。有没有人解决这个问题,或者知道如何解决?我知道它在几个论坛上列出,但那里建议的修复对我不起作用。

据我所知,所有的插件都在那里。使用 Cordova CLI 安装,它们出现在插件文件夹中。我确实想知道文件插件是否真的被加载了,不确定我该如何验证..

  • org.apache.cordova.console
  • org.apache.
  • cordova.device org.apache.cordova.file
  • org.apache.cordova.file-transfer

www/index.html

<body onload="onLoad();">
<script type="text/javascript">
// Init when we're good and ready.
function onLoad(){document.addEventListener('deviceready', init, true);}

// Init :)
function init(){
// window.requestFileSystem is recognized, so far so good.
window.requestFileSystem(1, 0, function(fileSystem){
alert('success');
}, function(e){
// 'e' is an object, {code: 'Class not found'}
alert('Error accessing local file system');
});
}
</script>
<div class="app">
<h1>Apache Cordova</h1>
...
</div>

<script type="text/javascript" src="cordova.js"></script>
</body>

配置文件

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.fwd.cwptakeonsheetsv1" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>CWPTakeOnSheetsV1</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<access origin="*" />



<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
<feature name="Device">
<param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<feature name="File">
<param name="android-package" value="org.apache.cordova.file" />
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
<param name="onload" value="true" />
<param name="android-package" value="org.apache.cordova.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
</widget>

Cordova 的 requestFileSystem.js

/**
* Request a file system in which to store application data.
* @param type local file system type
* @param size indicates how much storage space, in bytes, the application expects to need
* @param successCallback invoked with a FileSystem object
* @param errorCallback invoked if error occurs retrieving file system
*/
var requestFileSystem = function(type, size, successCallback, errorCallback) {
argscheck.checkArgs('nnFF', 'requestFileSystem', arguments);
var fail = function(code) {
errorCallback && errorCallback(new FileError(code));
};

if (type < 0) {
fail(FileError.SYNTAX_ERR);
} else {
// if successful, return a FileSystem object
var success = function(file_system) {
if (file_system) {
if (successCallback) {
// grab the name and root from the file system object
var result = new FileSystem(file_system.name, file_system.root);
successCallback(result);
}
}
else {
// no FileSystem object returned
fail(FileError.NOT_FOUND_ERR);
}
};
// The error happens in exec()
exec(success, fail, "File", "requestFileSystem", [type, size]);
}
};

最佳答案

我想我发现了问题(至少在我的情况下)。我一直在努力应对这个一遍又一遍地弹出:

只需打开 plugins/android.json 并将“config.xml”标题下的所有条目移至“res/xml/config.xml”标题。

我认为这是某些插件(在我的例子中是 Immersify)没有切换到新的 config.xml 位置的问题。修复此问题后,所有“丢失”的插件神奇地出现在我的 platforms/android/res/xml/config.xml 文件中,并且“找不到类”错误消失了。

关于android - Cordova 3.4 中的 requestFileSystem 失败并出现 "Class not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com