2013-09-08 3 views
11

Ich habe ein Problem für den Zugriff auf Android-Dateisystem für Speicherzwecke in meiner Phonegap-Anwendung. Ich habe viele Nicht-Meine-Situationen-Lösungen gesucht und gefunden!Phonegap Android LocalFileSystem ist nicht definiert

Ich weiß über die Notwendigkeit der Geräte zu gefeuert und überprüft und es wurde gefeuert. So ist die phonegap.js perfekt geladen!

Ich glaube, ich habe die Dateiberechtigungen angefordert und Funktionen in meiner Manifest- und Konfigurationsdatei. hier sind sie:

config.xml:

<feature name="http://api.phonegap.com/1.0/device" /> 
    <feature name="http://api.phonegap.com/1.0/battery"/> 
    <feature name="http://api.phonegap.com/1.0/camera"/> 
    <feature name="http://api.phonegap.com/1.0/contacts"/> 
    <feature name="http://api.phonegap.com/1.0/file"/> 
    <feature name="http://api.phonegap.com/1.0/geolocation"/> 
    <feature name="http://api.phonegap.com/1.0/media"/> 
    <feature name="http://api.phonegap.com/1.0/network"/> 
    <feature name="http://api.phonegap.com/1.0/notification"/> 
    <preference name="permissions" value="none" /> 
    <preference name="orientation" value="default" /> 
    <preference name="target-device" value="universal" /> 
    <preference name="fullscreen" value="true" /> 
    <preference name="webviewbounce" value="true" /> 
    <preference name="prerendered-icon" value="true" /> 
    <preference name="stay-in-webview" value="false" /> 
    <preference name="ios-statusbarstyle" value="black-opaque" /> 
    <preference name="detect-data-types" value="true" /> 
    <preference name="exit-on-suspend" value="false" /> 
    <preference name="show-splash-screen-spinner" value="true" /> 
    <preference name="auto-hide-splash-screen" value="true" /> 
    <preference name="disable-cursor" value="false" /> 
    <preference name="android-minSdkVersion" value="7" /> 
    <preference name="android-installLocation" value="auto" /> 
    <icon src="icon.png" /> 
    <icon gap:density="ldpi" gap:platform="android" src="res/icon/android/icon-36-ldpi.png" /> 
    <icon gap:density="mdpi" gap:platform="android" src="res/icon/android/icon-48-mdpi.png" /> 
    <icon gap:density="hdpi" gap:platform="android" src="res/icon/android/icon-72-hdpi.png" /> 
    <icon gap:density="xhdpi" gap:platform="android" src="res/icon/android/icon-96-xhdpi.png" /> 
    <access origin="*" /> 
    <content src="index.html" /> 
</widget> 

AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0.0" android:windowSoftInputMode="adjustPan" package="com.pakhshyaran.kara" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-permission android:name="android.permission." /> 
    <application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="Kara" android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="18" /> 
</manifest> 

und hier ist der Fehler meines Codes werfen Teil:

$(document).ready(function() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
}); 
function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { //throws the 'Uncaught ReferenceError: LocalFileSystem is not defined' error 
     fileSystem = fileSystem; 
    }, function (evt) { 
     alert(evt.target.error.code); 
    }); 
} 

Aber ich bekomme den Fehler aus einem Grund, von dem ich keine Ahnung habe! Bitte gib mir deine Gedanken. Ich schätze es sehr.

PS: Ich benutze Phonegap 3.0!

Antwort

19

Verwenden Sie phonegap cli, um Ihr Projekt zu erstellen? Dann haben Sie möglicherweise vergessen, das Datei-Plugin zu Ihrem Projekt hinzuzufügen. Neben der Konfiguration in config.xml und AndroidManifiest.xml benötigen Sie den Code für das Plugin. Sie können es zu einem Projekt hinzuzufügen, mit:

$ phonegap plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git 

überprüfen oben auf der Seite in der Dokumentation: http://docs.phonegap.com/en/3.0.0/cordova_file_file.md.html#LocalFileSystem

Sie die Datei auch überprüfen android/assets/www/cordova_plugins.js zu sehen, ob window.LocalFileSystem tatsächlich definiert ist. Suchen Sie nach etwas wie diesem:

{ 
    "file": "plugins/org.apache.cordova.core.file/www/FileSystem.js", 
    "id": "org.apache.cordova.core.file.FileSystem", 
    "clobbers": [ 
     "window.FileSystem" 
    ] 
}, 
+2

Danke für Ihre Antwort. Ich wusste nicht, dass ich das Plugin hinzufügen muss. Ich führe den Befehl und es wurde ausgeführt. aber dem cordova_plugins.js ist nichts passiert. Gibt es noch etwas, was ich wissen sollte? – Hosein

+2

@Hosein Das Hinzufügen des Plugins fügt auch die Konfiguration hinzu. Versuchen Sie es noch einmal: cordova build android – davidlgj

+0

Danke. Es wurde mit einer kleinen Härte gelöst. – Hosein