私のアプリからのデータを、内部のプライベートストレージエリア(アプリのユーザー設定)のシンプルなテキストファイルに保存しようとしています。私はここで多くの質問(StackOverflow)を読んで、成功しなかった解決策を試しました。一番簡単な解決法は、ここに示唆された解決策です:
http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
しかし、私はこれを私のテストデバイスで動作させることはできません。また、適切なメソッドでjava.io.Fileで使用できるメソッドを使用してファイルを作成しようとしました。私は同じ結果をSDCard上に作成しようとしましたが、失敗しました。私は他の答えに列挙された多くのソリューションを試してみました。コードと指示が正確に示唆され、同じ結果が得られました。私はどこかのコードのいくつかの重要なビット、または設定フラグをしないのです、私はマニフェストファイルにアクセス権を設定していることを感じ始めています:明確にするため
Androidの内部プライベートストレージに書き込む
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
、デバイスの内部のプライベートストレージに書き込もうとしています。これは、名前、電話番号、およびタイプのいくつかのint
フラグを含む小さなファイルです。これまで使用していた方法のうち、私はファイルが作成されなかった(またはSDCardに手動でファイルを置くと変更する)か、ファイルまたはファイルの場所を参照しようとするとNullPointerExceptionが発生することを発見しました:
private File fILE = new File("Mydata", main.FILENAME);
または
private File fILE = getDir("Mydata", 0);
私はスプリントから、最新のサービスリリースで更新、HTCのヒーローでコードを実行しています。どんな助けでも大いに感謝されます、ありがとうございます!
-Steve
アップデート(2/2/11):EVO(API 8)を使用して、私はまだNullPointerExceptionが得られます。例外を生成するコードは、私のアプリが内部ストレージにアクセスできない理由についての考えです。私は、2つのAPIレベル(API 7と8)を使用する3つの異なる物理デバイスでこの問題を抱えています。
File newfile = new File(this.getFilesDir() + "/data/files/", "sample.txt");
UPDATE 2:2/4/11 - 私はどのような状況の下で、物理デバイス(データディレクトリ)上のファイル構造を見ることができないことを見出しました。誰にでもこれに関する考えはありますか?デバイスは適切に設定されており、eclipseまたはadbからappを実行できます。
UPDATE 3:(2/9/11) - 私はこの問題が何であるかを知っているかもしれないと思うが、それに対処する方法がわからない。私は、物理デバイスの/ data /ディレクトリのアクセス許可がdrwxrwx--x
であることを認識しました。私はなぜそれがこの方法であるかわからない、多分スプリントで何か?私はこれをHTC Hero、Samsung Epic(Galaxy S)、そしてHTC EVOのすべてでSprintで見つけました。この問題は、DDMSと私のアプリケーションがディレクトリへのr/wアクセス権を持っていないことが原因です。私はここで2つのことを理解する必要があります、なぜこれのようなもので、どのように野生のこの問題に来てください。再び、ここのどんな助けも素晴らしいだろう!!
更新日:私は昨年2月が私のために総ブロンドの瞬間だったと思います(更新3参照)。私が持っているテストデバイスはROOTされていないため、アクセスはありません(DUH!)。 SGSとEVO 4Gのすべてのアップデートが終わった後も、結果は変わりません。私はまだこの問題に取り組んでおり、もう一度更新してみようと思っています。
これらの異なる方法を試してみるとエラーメッセージが表示されますか、それとも単に黙って失敗していますか? –
私は 'openFileOutput()'の方法に集中しており、NullPointerExceptionが発生しています。何らかの理由で電話機のプライベートデータディレクトリがロックされているようで、ディレクトリを見ることさえできません。そのような何もそこに作成されません。電話機の 'data'ディレクトリのアクセス権は、「drwxrwx-x」です。私は電話や何かに無効な設定があるかどうか疑問に思っています。互換性のため、データファイルは内部ストレージに書き込む必要があります。 – Kingsolmn
DDMSを使用して物理デバイス上の/ dataディレクトリにアクセスすることはできません。ただし、rootアクセス権がない限り、アプリケーションからファイルに書き込むことはできません。エミュレータではどうなりますか?あなたはファイルを書くことができますか? – techiServices