无法在Android Phonegap上创建/写入文件

无法在Android Phonegap上创建/写入文件,android,cordova,phonegap-plugins,Android,Cordova,Phonegap Plugins,我正在尝试使用以下工具在Android上创建文件: document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); } function gotFS(fileSystem) { fileSystem.root.getFil

我正在尝试使用以下工具在Android上创建文件:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile("example.txt", {
        create: true
    }, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
    fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
    writer.onwriteend = function(evt) {
        console.log("contents of file now 'some sample text'");
        writer.truncate(11);
        writer.onwriteend = function(evt) {
            console.log("contents of file now 'some sample'");
            writer.seek(4);
            writer.write(" different text");
            writer.onwriteend = function(evt) {
                console.log("contents of file now 'some different text'");
            }
        };
    };
    writer.write("some sample text");
}

function fail(error) {
    console.log(error.code);
}
这段代码在iOS上运行良好,我可以看到在Documents文件夹中创建的文件。但是在Android上我没有看到任何文件

我已经添加了所有的插件。此外,我已按顺序采取以下步骤

添加插件 cordova插件添加org.apache.cordova.file cordova插件添加org.apache.file-transfer

在我的应用程序中编译和构建android cordova编译android cordova构建android

我的配置文件还包含以下条目:

<name>Hello Cordova</name>

<description>
    A sample Apache Cordova application that responds to the deviceready event.
</description>



<access origin="*"/>


<content src="index.html" />

<!-- Preferences for iOS -->
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="DisallowOverscroll" value="false" />
<preference name="EnableLocation" value="false" /><!-- DEPRECATED -->
<preference name="EnableViewportScale" value="false" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value=".25" />
<preference name="HideKeyboardFormAccessoryBar" value="false" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="KeyboardShrinksView" value="false" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="iosPersistentFileLocation" value="Library" />


<feature name="Geolocation">
  <param name="ios-package" value="CDVLocation"/>
</feature>
<feature name="Device">
  <param name="ios-package" value="CDVDevice"/>
</feature>
<feature name="Accelerometer">
  <param name="ios-package" value="CDVAccelerometer"/>
</feature>
<feature name="Compass">
  <param name="ios-package" value="CDVLocation"/>
</feature>
<feature name="Media">
  <param name="ios-package" value="CDVSound"/>
</feature>
<feature name="Camera">
  <param name="ios-package" value="CDVCamera"/>
</feature>
<feature name="Contacts">
  <param name="ios-package" value="CDVContacts"/>
</feature>
<feature name="File">
  <param name="ios-package"  value="CDVFile"/>
</feature>
<feature name="NetworkStatus">
  <param name="ios-package" value="CDVConnection"/>
</feature>
<feature name="Notification">
  <param name="ios-package" value="CDVNotification"/>
</feature>
<feature name="FileTransfer">
  <param name="ios-package" value="CDVFileTransfer"/>
</feature>
<feature name="Capture">
  <param name="ios-package" value="CDVCapture"/>
</feature>
<feature name="Battery">
  <param name="ios-package" value="CDVBattery"/>
</feature>
<feature name="SplashScreen">
  <param name="ios-package" value="CDVSplashScreen"/>
</feature>
<feature name="Echo">
  <param name="ios-package" value="CDVEcho"/>
</feature>
<feature name="Globalization">
  <param name="ios-package" value="CDVGlobalization"/>
</feature>
<feature name="InAppBrowser">
  <param name="ios-package" value="CDVInAppBrowser"/>
</feature>
<feature name="Logger">
  <param name="ios-package" value="CDVLogger"/>
</feature>
<feature name="LocalStorage">
    <param name="ios-package" value="CDVLocalStorage"/>
</feature>
<feature name="File">
    <param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
    <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<!-- Deprecated plugins element. REmove in 3.0 -->
<plugins>

</plugins>
我在Android清单文件中拥有必要的权限:

以下是我的Cordova版本:3.5.0-0.2.6

在iOS上一切正常。在Android上,Logcat给出以下错误:


未捕获引用错误:未定义LocalFileSystem,来源:文件??android_asset/www/app.js

您不能在同一config.xml文件中混淆iOS和android。确保在单独的config.xml中设置cordova插件

iOS

安卓


这基本上就是插件添加的方式。我发现phonegap和cordova网站上提供的文档非常混乱。我可能不得不跟着他们两个去做。 要在plugins.xml中添加必要的插件信息,您需要遵循以下步骤:

要更改配置文件,您需要遵循以下步骤:


然后编译并运行。我不确定是否有任何地方可以找到统一的文档。请让我知道,如果你知道任何统一的文件,其中结合了这一切。我正在使用Phonegap 3.5和cordova 3.5版本,并查看旧文档以找出解决方法

谢谢您的回答。然而,正如上面的答案所示,这正是我们所缺少的:它基本上就是插件添加的方式。我发现phonegap和cordova网站上提供的文档非常混乱。我可能不得不跟着他们两个去做。要在plugins.xml中添加必要的插件信息,您需要遵循以下步骤:要更改配置文件,您需要遵循以下步骤:然后编译并运行。