File.renameToの失敗

2,695 views
Skip to first unread message

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 12:15:32 AM8/23/13
to android-g...@googlegroups.com
小林と申します。
リリースしているアプリでsdcardのトラブルに悩まされています。
ネットからダウンロードしたコンテンツを以下の手順でsdcardの
アプリ専用フォルダに格納しています(フォルダは機種によって違います)。

1./mnt/sdcard/xxx/product/xxx.tmp にダウンロードしたファイルを書く。
2.それをrenameToで /mnt/sdcard/xxx/product/xxx.zip に書き換える。
3. xxx.zipファイルを読む。
この3の部分で、xxx.zipが見つからないというエラーがユーザー様のところで
多発しています。
1は正常に終了していますのでおそらく2の部分でrenameToが失敗している
のだと思いますが、同一フォルダでrenameToが失敗する事というのは
ハードウェア系のトラブル以外にあるのでしょうか。
手持ちの端末複数でかなりテストしましたが、どうやっても再現せず
困っています。

--
小林一彦

Hirokazu Fukami

unread,
Aug 23, 2013, 1:11:19 AM8/23/13
to android-g...@googlegroups.com
こんにちはfkmです。

sdcardが内部ストレージになっている機種で、permissionが無い
というケースはどうでしょうか?
(Nexus Sでsdcard直下には書けなかった記憶があるので。。。


2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 1:33:38 AM8/23/13
to android-g...@googlegroups.com
permissionは、
android.permission.WRITE_EXTERNAL_STORAGE
を付けています。
そもそも1でちゃんとエラー無しで書けていますので、書き込み権限は
問題無いと考えられます。
ところがrenameToした後にファイルが無くなっているので困っています。

何かセキュリティソフトが影響していたりするのでしょうか。

2013年8月23日 14:11 Hirokazu Fukami <fkm...@gmail.com>:

Hirokazu Fukami

unread,
Aug 23, 2013, 1:41:56 AM8/23/13
to android-g...@googlegroups.com
こんにちはfkmです。

permissionという用語がごっちゃになっててすいません。。。
「これかな?」と思ったのは、ファイルに対するpermissionです。
Linuxであれば
chmod +x ファイル名
で変更したりするやつです。

これが、何らかのタイミングで変更されちゃったりは、してないでしょうか?


2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 1:49:22 AM8/23/13
to android-g...@googlegroups.com
ファイルのpermissionは変更しておりません。
また、close()した次の行でrenameToし、その次の行でopenしていますので
その間に何か処理が入るという事は無いです。

2013年8月23日 14:41 Hirokazu Fukami <fkm...@gmail.com>:

田代透

unread,
Aug 23, 2013, 2:02:07 AM8/23/13
to android-g...@googlegroups.com
./mnt/sdcard/xxx/product/
というパスは、エラーの起こる実機で実際にあるパスでしょうか。

getExternalStorageDirectory()を使用して取得していますか?

「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
エラーが起きた実機で確認されましたか?



2013年8月23日 14:49 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:



--
--
Toru Tashiro
toru...@gmail.com

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 3:27:30 AM8/23/13
to android-g...@googlegroups.com
> ./mnt/sdcard/xxx/product/
> というパスは、エラーの起こる実機で実際にあるパスでしょうか。

書けているという事は存在するはずです。

> getExternalStorageDirectory()を使用して取得していますか?

はい、もちろんです。

> 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
> エラーが起きた実機で確認されましたか?

こちらの手持ちの機種
・NEXUS7
・GALAXY NEXUS
・P-01D
・TF101
・HTC J butterfly HTL21
では全く発生しませんので確認のしようがありません。
しかし書けているという事はユーザーから送られてきたstacktraceで
エラーが3の所で発生している事から、間違い無いと思われます。


2013年8月23日 15:02 田代透 <toru...@gmail.com>:

飯塚康至

unread,
Aug 23, 2013, 3:58:12 AM8/23/13
to 日本Androidの会
お疲れ様です。飯塚です。
うまくいかない機種分かりますか?

2013年8月23日 16:27 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:
以上、宜しくお願いします。

飯塚 康至

Yoshiaki Nakanishi

unread,
Aug 23, 2013, 4:04:50 AM8/23/13
to android-g...@googlegroups.com
中西です。

そもそも1.の書き込みが成功していることを、1.の直後にファイルを読み出せる
ことで確認はされているのでしょうか?

Linux(というかUnix系OS)の特徴の一つなのですが、以下のようなことが可能です。

・ファイルを読み込みで開く
・開いている間にそのファイルを削除する(移動/リネームする)
 → 先に開いているファイルの読みは問題なく進行する。

そのため、Androidが動作しているベースはLinuxなので、あなたの示した処理の
2.と3.の処理を逆転しても、所望の動作になりそうです。

上記も踏まえて、ファイル書き込み後にすぐファイル(拡張子.tmpのファイル)を
読み出すことに成功するかどうか、確認してみてはいかがでしょう。

(2013/08/23 16:27), Kazuhiko Kobayashi wrote:
>> ./mnt/sdcard/xxx/product/
>>というパスは、エラーの起こる実機で実際にあるパスでしょうか。
>
> 書けているという事は存在するはずです。
>
>> getExternalStorageDirectory()を使用して取得していますか?
>
> はい、もちろんです。
>
>> 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
>>エラーが起きた実機で確認されましたか?
>
> こちらの手持ちの機種
> ・NEXUS7
> ・GALAXY NEXUS
> ・P-01D
> ・TF101
> ・HTC J butterfly HTL21
> では全く発生しませんので確認のしようがありません。
> しかし書けているという事はユーザーから送られてきたstacktraceで
> エラーが3の所で発生している事から、間違い無いと思われます。
>
>
> 2013年8月23日 15:02 田代透 <toru...@gmail.com <mailto:toru...@gmail.com>>:
>
> ./mnt/sdcard/xxx/product/
> というパスは、エラーの起こる実機で実際にあるパスでしょうか。
>
> getExternalStorageDirectory()を使用して取得していますか?
>
> 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
> エラーが起きた実機で確認されましたか?
>
>
>
> 2013年8月23日 14:49 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
>
> ファイルのpermissionは変更しておりません。
> また、close()した次の行でrenameToし、その次の行でopenしていますので
> その間に何か処理が入るという事は無いです。
>
> 2013年8月23日 14:41 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com>>:
>
> こんにちはfkmです。
>
> permissionという用語がごっちゃになっててすいません。。。
> 「これかな?」と思ったのは、ファイルに対するpermissionです。
> Linuxであれば
> chmod +x ファイル名
> で変更したりするやつです。
>
> これが、何らかのタイミングで変更されちゃったりは、してないでしょうか?
>
>
> 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
> > permissionは、
> > android.permission.WRITE_EXTERNAL_STORAGE
> > を付けています。
> > そもそも1でちゃんとエラー無しで書けていますので、書き込み権限は
> > 問題無いと考えられます。
> > ところがrenameToした後にファイルが無くなっているので困っています。
> >
> > 何かセキュリティソフトが影響していたりするのでしょうか。
> >
> > 2013年8月23日 14:11 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com>>:
> >
> >> こんにちはfkmです。
> >>
> >> sdcardが内部ストレージになっている機種で、permissionが無い
> >> というケースはどうでしょうか?
> >> (Nexus Sでsdcard直下には書けなかった記憶があるので。。。
> >>
> >>
> >> 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
> >> > 小林と申します。
> >> > リリースしているアプリでsdcardのトラブルに悩まされています。
> >> > ネットからダウンロードしたコンテンツを以下の手順でsdcardの
> >> > アプリ専用フォルダに格納しています(フォルダは機種によって違います)。
> >> >
> >> > 1./mnt/sdcard/xxx/product/xxx.tmp にダウンロードしたファイルを書く。
> >> > 2.それをrenameToで /mnt/sdcard/xxx/product/xxx.zip に書き換える。
> >> > 3. xxx.zipファイルを読む。
> >> > この3の部分で、xxx.zipが見つからないというエラーがユーザー様のところで
> >> > 多発しています。
> >> > 1は正常に終了していますのでおそらく2の部分でrenameToが失敗している
> >> > のだと思いますが、同一フォルダでrenameToが失敗する事というのは
> >> > ハードウェア系のトラブル以外にあるのでしょうか。
> >> > 手持ちの端末複数でかなりテストしましたが、どうやっても再現せず
> >> > 困っています。
> >> >
> >> > --
> >> > 小林一彦
> >> >
> >> > --
> >> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >> >
> >> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >> > にメールを送信します。
> >> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> >> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >>
> >>
> >>
> >> --
> >> -------------------------------------------------------------
> >> 深見 浩和(Hirokazu Fukami)
> >>
> >> URI:http://www.fkmsoft.jp
> >> email:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>
> >>
> >> --
> >> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >> にメールを送信します。
> >> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> > にメールを送信します。
> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
>
> --
> -------------------------------------------------------------
> 深見 浩和(Hirokazu Fukami)
>
> URI:http://www.fkmsoft.jp
> email: f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
>
>
> --
> --
> Toru Tashiro
> toru...@gmail.com <mailto:toru...@gmail.com>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。


--
ブライテクノ株式会社
中西 良明
〒101-0032
東京都千代田区岩本町2-13-6 ミツボシ第3ビル
e-mail: naka...@brightechno.com
tel: 03-5809-1814 mobile: 090-1558-5082
web: http://www.brightechno.com/

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 4:21:03 AM8/23/13
to android-g...@googlegroups.com
クラッシュレポートを見ても機種がOTHERとかですのでちょっと
分かりません。
ただ、パスが/storage/emulated/0で始まっているログもあるため、
OSのバージョンはまちまちのようです。

2013年8月23日 16:58 飯塚康至 <iiz...@aa.mbn.or.jp>:

Yoshiaki Nakanishi

unread,
Aug 23, 2013, 4:32:11 AM8/23/13
to android-g...@googlegroups.com
中西です。

今回のケースがあてはまるかどうかわかりませんが参考情報を追加しておきます。

市場に出回っている MDM(Mobile Device Management)の中には、SDカード(および相当する
内蔵メモリ)へのファイル書き込み禁止をうたっているものがあります。

AndroidのDevice Administrationとして、ファイル書き込み禁止とする機構が無いため、
なんらかの方法でファイル作成を検出し、それをトリガとしてすぐにファイルを消すという
ようなことをやっていると思われます。

なので、そういう可能性を考慮して、SDカード上のファイルはどんなタイミングで消滅
していてもおかしくないという前提でコードを書いておく方が安全になるかと思います。

(2013/08/23 17:21), Kazuhiko Kobayashi wrote:
> クラッシュレポートを見ても機種がOTHERとかですのでちょっと
> 分かりません。
> ただ、パスが/storage/emulated/0で始まっているログもあるため、
> OSのバージョンはまちまちのようです。
>
> 2013年8月23日 16:58 飯塚康至 <iiz...@aa.mbn.or.jp <mailto:iiz...@aa.mbn.or.jp>>:
>
> お疲れ様です。飯塚です。
> うまくいかない機種分かりますか?
>
> 2013年8月23日 16:27 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
> >> ./mnt/sdcard/xxx/product/
> >> というパスは、エラーの起こる実機で実際にあるパスでしょうか。
> >
> > 書けているという事は存在するはずです。
> >
> >> getExternalStorageDirectory()を使用して取得していますか?
> >
> > はい、もちろんです。
> >
> >> 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
> >> エラーが起きた実機で確認されましたか?
> >
> > こちらの手持ちの機種
> > ・NEXUS7
> > ・GALAXY NEXUS
> > ・P-01D
> > ・TF101
> > ・HTC J butterfly HTL21
> > では全く発生しませんので確認のしようがありません。
> > しかし書けているという事はユーザーから送られてきたstacktraceで
> > エラーが3の所で発生している事から、間違い無いと思われます。
> >
> >
> > 2013年8月23日 15:02 田代透 <toru...@gmail.com <mailto:toru...@gmail.com>>:
> >
> >> ./mnt/sdcard/xxx/product/
> >> というパスは、エラーの起こる実機で実際にあるパスでしょうか。
> >>
> >> getExternalStorageDirectory()を使用して取得していますか?
> >>
> >> 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
> >> エラーが起きた実機で確認されましたか?
> >>
> >>
> >>
> >> 2013年8月23日 14:49 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
> >>>
> >>> ファイルのpermissionは変更しておりません。
> >>> また、close()した次の行でrenameToし、その次の行でopenしていますので
> >>> その間に何か処理が入るという事は無いです。
> >>>
> >>> 2013年8月23日 14:41 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com>>:
> >>>
> >>>> こんにちはfkmです。
> >>>>
> >>>> permissionという用語がごっちゃになっててすいません。。。
> >>>> 「これかな?」と思ったのは、ファイルに対するpermissionです。
> >>>> Linuxであれば
> >>>> chmod +x ファイル名
> >>>> で変更したりするやつです。
> >>>>
> >>>> これが、何らかのタイミングで変更されちゃったりは、してないでしょうか?
> >>>>
> >>>>
> >>>> 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
> >>>> > permissionは、
> >>>> > android.permission.WRITE_EXTERNAL_STORAGE
> >>>> > を付けています。
> >>>> > そもそも1でちゃんとエラー無しで書けていますので、書き込み権限は
> >>>> > 問題無いと考えられます。
> >>>> > ところがrenameToした後にファイルが無くなっているので困っています。
> >>>> >
> >>>> > 何かセキュリティソフトが影響していたりするのでしょうか。
> >>>> >
> >>>> > 2013年8月23日 14:11 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com>>:
> >>>> >
> >>>> >> こんにちはfkmです。
> >>>> >>
> >>>> >> sdcardが内部ストレージになっている機種で、permissionが無い
> >>>> >> というケースはどうでしょうか?
> >>>> >> (Nexus Sでsdcard直下には書けなかった記憶があるので。。。
> >>>> >>
> >>>> >>
> >>>> >> 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>:
> >>>> >> > 小林と申します。
> >>>> >> > リリースしているアプリでsdcardのトラブルに悩まされています。
> >>>> >> > ネットからダウンロードしたコンテンツを以下の手順でsdcardの
> >>>> >> > アプリ専用フォルダに格納しています(フォルダは機種によって違います)。
> >>>> >> >
> >>>> >> > 1./mnt/sdcard/xxx/product/xxx.tmp にダウンロードしたファイルを書く。
> >>>> >> > 2.それをrenameToで /mnt/sdcard/xxx/product/xxx.zip に書き換える。
> >>>> >> > 3. xxx.zipファイルを読む。
> >>>> >> > この3の部分で、xxx.zipが見つからないというエラーがユーザー様のところで
> >>>> >> > 多発しています。
> >>>> >> > 1は正常に終了していますのでおそらく2の部分でrenameToが失敗している
> >>>> >> > のだと思いますが、同一フォルダでrenameToが失敗する事というのは
> >>>> >> > ハードウェア系のトラブル以外にあるのでしょうか。
> >>>> >> > 手持ちの端末複数でかなりテストしましたが、どうやっても再現せず
> >>>> >> > 困っています。
> >>>> >> >
> >>>> >> > --
> >>>> >> > 小林一彦
> >>>> >> >
> >>>> >> > --
> >>>> >> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >>>> >> >
> >>>> >> >
> >>>> >> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >>>> >> > にメールを送信します。
> >>>> >> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>>> >> >http://groups.google.com/group/android-group-japan
> >>>> >> > からこのグループにアクセスしてください。
> >>>> >> > その他のオプションについては、https://groups.google.com/groups/opt_out
> >>>> >> > にアクセスしてください。
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >> --
> >>>> >> -------------------------------------------------------------
> >>>> >> 深見 浩和(Hirokazu Fukami)
> >>>> >>
> >>>> >> URI:http://www.fkmsoft.jp
> >>>> >> email:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>
> >>>> >>
> >>>> >> --
> >>>> >> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >>>> >>
> >>>> >> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >>>> >> にメールを送信します。
> >>>> >> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>>> >>http://groups.google.com/group/android-group-japan
> >>>> >> からこのグループにアクセスしてください。
> >>>> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >>>> >
> >>>> >
> >>>> > --
> >>>> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >>>> >
> >>>> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >>>> > にメールを送信します。
> >>>> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>>> >http://groups.google.com/group/android-group-japan
> >>>> > からこのグループにアクセスしてください。
> >>>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> -------------------------------------------------------------
> >>>> 深見 浩和(Hirokazu Fukami)
> >>>>
> >>>> URI:http://www.fkmsoft.jp
> >>>> email:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>
> >>>>
> >>>> --
> >>>> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >>>>
> >>>> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >>>> にメールを送信します。
> >>>> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>>>http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> >>>> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >>>
> >>>
> >>> --
> >>> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >>>
> >>> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >>> にメールを送信します。
> >>> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>>http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> >>> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >>
> >>
> >>
> >>
> >> --
> >> --
> >> Toru Tashiro
> >>toru...@gmail.com <mailto:toru...@gmail.com>
> >>
> >> --
> >> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> >> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> >> にメールを送信します。
> >> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >>http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com>
> > にメールを送信します。
> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
>
> --
> 以上、宜しくお願いします。
>
> 飯塚 康至
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。


--

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 4:47:49 AM8/23/13
to android-g...@googlegroups.com
> そもそも1.の書き込みが成功していることを、1.の直後にファイルを読み出せる
ことで確認はされているのでしょうか?

読んでいるのはrenameToした後のみで、xxx.tmpは読んでいません。
テンポラリファイルに書き込んでからrenameToしているのは、
書き込み途中のファイルが何らかのエラーで残ってしまうのを防ぐためです。

> Linux(というかUnix系OS)の特徴の一つなのですが、以下のようなことが可能です。

それは承知しております。
ですので何らかのセキュリティソフトが書いている最中のテンポラリファイルを
消してしまっている可能性を第一に疑っています。
ただそれだけに決めつけず幅広く原因を考えたいと思い質問させて頂きました。

もしセキュリティソフトが影響しているのでしたら、ちょっとお手上げです。
せめて製品名が分かれば開発元に誤検知の報告をして直して貰えるのですが。

2013年8月23日 17:04 Yoshiaki Nakanishi <naka...@brightechno.com>:

Hirokazu Fukami

unread,
Aug 23, 2013, 4:53:08 AM8/23/13
to android-g...@googlegroups.com
こんにちはfkmです。

このあたりはどうでしょうか?
http://yuki312.blogspot.jp/2012/01/blog-post_22.html

support-v4にはいっているAtomicFileでは、書き込み終了後に
FileDescriptorのsync()を読んでいます。
http://developer.android.com/reference/java/io/FileDescriptor.html#sync()

2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 4:53:16 AM8/23/13
to android-g...@googlegroups.com
貴重な情報を有り難うございます。
やはりそういうソフトがあるのですね。
ただアプリの性格上、sdcardのデータを消されては動作不可能です。
具体的にはこのアプリです。

こういう場合、どう対処すればいいのでしょうか。

2013年8月23日 17:32 Yoshiaki Nakanishi <naka...@brightechno.com>:

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 4:57:52 AM8/23/13
to android-g...@googlegroups.com
sync()まではやっていません。
確かにその方が確実ですね。
次のバージョンでは入れる事にします。
ただsync()していなくて壊れるのはOSがクラッシュした時か、sdcardが引っこ抜かれた
時ですので、今回の問題とは関係無いように思えます。

2013年8月23日 17:53 Hirokazu Fukami <fkm...@gmail.com>:

Yoshiaki Nakanishi

unread,
Aug 23, 2013, 4:59:12 AM8/23/13
to android-g...@googlegroups.com
中西です。

別メールでも書きましたが、MDMによってあらゆるSDカード書き込みに削除
処理が割り込む可能性もあります。

それはご検知でも何でもなく、MDM側からすれば適切な仕様となります。

なので、絶対にファイルが存在しているという前提の処理を書くのではなく、
ファイルはいつ何時消えてしまってもおかしくない、という前提でエラー
処理を入れることをおすすめします。

SDカードアクセス制限しているのに、SDカードを必要とするアプリを使うな
と言いたくもなるだろうとは思いますが、マーケットで公開するアプリは
相手の環境を選べないのであきらめるしかないところかと。


(2013/08/23 17:47), Kazuhiko Kobayashi wrote:
>> そもそも1.の書き込みが成功していることを、1.の直後にファイルを読み出せる
> ことで確認はされているのでしょうか?
>
> 読んでいるのはrenameToした後のみで、xxx.tmpは読んでいません。
> テンポラリファイルに書き込んでからrenameToしているのは、
> 書き込み途中のファイルが何らかのエラーで残ってしまうのを防ぐためです。
>
>> Linux(というかUnix系OS)の特徴の一つなのですが、以下のようなことが可能です。
>
> それは承知しております。
> ですので何らかのセキュリティソフトが書いている最中のテンポラリファイルを
> 消してしまっている可能性を第一に疑っています。
> ただそれだけに決めつけず幅広く原因を考えたいと思い質問させて頂きました。
>
> もしセキュリティソフトが影響しているのでしたら、ちょっとお手上げです。
> せめて製品名が分かれば開発元に誤検知の報告をして直して貰えるのですが。
>
> 2013年8月23日 17:04 Yoshiaki Nakanishi <naka...@brightechno.com <mailto:naka...@brightechno.com>>:
> > 2013年8月23日 15:02 田代透 <toru...@gmail.com <mailto:toru...@gmail.com> <mailto:toru...@gmail.com <mailto:toru...@gmail.com>>>:
> >
> > ./mnt/sdcard/xxx/product/
> > というパスは、エラーの起こる実機で実際にあるパスでしょうか。
> >
> > getExternalStorageDirectory()を使用して取得していますか?
> >
> > 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
> > エラーが起きた実機で確認されましたか?
> >
> >
> >
> > 2013年8月23日 14:49 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>>:
> >
> > ファイルのpermissionは変更しておりません。
> > また、close()した次の行でrenameToし、その次の行でopenしていますので
> > その間に何か処理が入るという事は無いです。
> >
> > 2013年8月23日 14:41 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com>>>:
> >
> > こんにちはfkmです。
> >
> > permissionという用語がごっちゃになっててすいません。。。
> > 「これかな?」と思ったのは、ファイルに対するpermissionです。
> > Linuxであれば
> > chmod +x ファイル名
> > で変更したりするやつです。
> >
> > これが、何らかのタイミングで変更されちゃったりは、してないでしょうか?
> >
> >
> > 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>>:
> > > permissionは、
> > > android.permission.WRITE_EXTERNAL_STORAGE
> > > を付けています。
> > > そもそも1でちゃんとエラー無しで書けていますので、書き込み権限は
> > > 問題無いと考えられます。
> > > ところがrenameToした後にファイルが無くなっているので困っています。
> > >
> > > 何かセキュリティソフトが影響していたりするのでしょうか。
> > >
> > > 2013年8月23日 14:11 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com>>>:
> > >
> > >> こんにちはfkmです。
> > >>
> > >> sdcardが内部ストレージになっている機種で、permissionが無い
> > >> というケースはどうでしょうか?
> > >> (Nexus Sでsdcard直下には書けなかった記憶があるので。。。
> > >>
> > >>
> > >> 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>>:
> > >> > 小林と申します。
> > >> > リリースしているアプリでsdcardのトラブルに悩まされています。
> > >> > ネットからダウンロードしたコンテンツを以下の手順でsdcardの
> > >> > アプリ専用フォルダに格納しています(フォルダは機種によって違います)。
> > >> >
> > >> > 1./mnt/sdcard/xxx/product/xxx.tmp にダウンロードしたファイルを書く。
> > >> > 2.それをrenameToで /mnt/sdcard/xxx/product/xxx.zip に書き換える。
> > >> > 3. xxx.zipファイルを読む。
> > >> > この3の部分で、xxx.zipが見つからないというエラーがユーザー様のところで
> > >> > 多発しています。
> > >> > 1は正常に終了していますのでおそらく2の部分でrenameToが失敗している
> > >> > のだと思いますが、同一フォルダでrenameToが失敗する事というのは
> > >> > ハードウェア系のトラブル以外にあるのでしょうか。
> > >> > 手持ちの端末複数でかなりテストしましたが、どうやっても再現せず
> > >> > 困っています。
> > >> >
> > >> > --
> > >> > 小林一彦
> > >> >
> > >> > --
> > >> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > >> >
> > >> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>>
> > >> > にメールを送信します。
> > >> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> > >> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > >> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > >>
> > >>
> > >>
> > >> --
> > >> -------------------------------------------------------------
> > >> 深見 浩和(Hirokazu Fukami)
> > >>
> > >> URI:http://www.fkmsoft.jp
> > >>email:f...@fkmsoft.jp <mailto:email%3A...@fkmsoft.jp> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>>
> > >>
> > >> --
> > >> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > >> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>>
> > >> にメールを送信します。
> > >> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> > >>http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > >
> > >
> > > --
> > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>>
> > > にメールを送信します。
> > > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> > >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> >
> > --
> > -------------------------------------------------------------
> > 深見 浩和(Hirokazu Fukami)
> >
> > URI:http://www.fkmsoft.jp
> > email:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>>
> >
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> にメールを送信します。
> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> にメールを送信します。
> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> >
> >
> > --
> > --
> > Toru Tashiro
> >toru...@gmail.com <mailto:toru...@gmail.com> <mailto:toru...@gmail.com <mailto:toru...@gmail.com>>
> >
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> にメールを送信します。
> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメールを送信します。
> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
> --
> ブライテクノ株式会社
> 中西 良明
> 〒101-0032
> 東京都千代田区岩本町2-13-6 ミツボシ第3ビル
> e-mail: naka...@brightechno.com <mailto:naka...@brightechno.com>

MORIHIRO

unread,
Aug 23, 2013, 5:09:41 AM8/23/13
to android-g...@googlegroups.com
原因とか対策とかはさっぱり不明ですが、、、
renameTo()の戻り値を確認するようにすれば
問題の切り分けはしやすいように思います。

2013年8月23日金曜日 13時15分32秒 UTC+9 Kazuhiko Kobayashi:

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 5:09:22 AM8/23/13
to android-g...@googlegroups.com
一応、ファイルのコピーに失敗した旨のnotificationを出し、アプリ自体は
落ちないようになっています。
notificationにしているのはContentProviderの中の処理でダイアログを
出せないからです。そのnotificationをクリックするとintentを飛ばして
stacktraceをメール出来るようにしています。

それでも苦情が1日に10通以上来る状況で(いま書いている最中にも
何通も来ています)、それを理由に1評価もたくさん付けられるため
非常に困っています。

2013年8月23日 17:59 Yoshiaki Nakanishi <naka...@brightechno.com>:

田代透

unread,
Aug 23, 2013, 5:15:58 AM8/23/13
to android-g...@googlegroups.com
ファイルパスでググってみたらばこんなのがありましたけど


4.2だとユーザーの切り替えにともなってアプリケーションのデーター保存領域が変化するので

getExternalFilesDir()を使うべきのようです。

単純に書き込み時のエラーを処理していないだけじゃないかという気がします。



2013年8月23日 17:57 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:



--
--
Toru Tashiro
toru...@gmail.com

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 5:24:47 AM8/23/13
to android-g...@googlegroups.com
> getExternalFilesDir()を使うべきのようです。
使うべきと言いますか、使わないと動かないと思います。
私のアプリも当然使っています。

> 単純に書き込み時のエラーを処理していないだけじゃないかという気がします。
Javaの場合ファイル書き込みでエラーが発生すればIOExceptionが発生しますので
エラー処理漏れは考えられません。
実際そういうエラー報告も大量にあり、そちらは明らかなハードウェアエラー
ですので今回の問題とは切り離して考えています。

2013年8月23日 18:15 田代透 <toru...@gmail.com>:

Yoshiaki Nakanishi

unread,
Aug 23, 2013, 5:47:47 AM8/23/13
to android-g...@googlegroups.com
中西です。

エラー時にユーザにどう見せるかというのは、技術の問題じゃなくて感性の
問題ですし、それぞれのアプリ仕様によって様々でこれが正解というものは
ないかと思います。自分のアプリにあった方法を考えぬくしかないかと。


(2013/08/23 18:09), Kazuhiko Kobayashi wrote:
> 一応、ファイルのコピーに失敗した旨のnotificationを出し、アプリ自体は
> 落ちないようになっています。
> notificationにしているのはContentProviderの中の処理でダイアログを
> 出せないからです。そのnotificationをクリックするとintentを飛ばして
> stacktraceをメール出来るようにしています。
>
> それでも苦情が1日に10通以上来る状況で(いま書いている最中にも
> 何通も来ています)、それを理由に1評価もたくさん付けられるため
> 非常に困っています。
>
> 2013年8月23日 17:59 Yoshiaki Nakanishi <naka...@brightechno.com <mailto:naka...@brightechno.com>>:
>
> 中西です。
>
> 別メールでも書きましたが、MDMによってあらゆるSDカード書き込みに削除
> 処理が割り込む可能性もあります。
>
> それはご検知でも何でもなく、MDM側からすれば適切な仕様となります。
>
> なので、絶対にファイルが存在しているという前提の処理を書くのではなく、
> ファイルはいつ何時消えてしまってもおかしくない、という前提でエラー
> 処理を入れることをおすすめします。
>
> SDカードアクセス制限しているのに、SDカードを必要とするアプリを使うな
> と言いたくもなるだろうとは思いますが、マーケットで公開するアプリは
> 相手の環境を選べないのであきらめるしかないところかと。
>
>
> (2013/08/23 17:47), Kazuhiko Kobayashi wrote:
> >> そもそも1.の書き込みが成功していることを、1.の直後にファイルを読み出せる
> > ことで確認はされているのでしょうか?
> >
> > 読んでいるのはrenameToした後のみで、xxx.tmpは読んでいません。
> > テンポラリファイルに書き込んでからrenameToしているのは、
> > 書き込み途中のファイルが何らかのエラーで残ってしまうのを防ぐためです。
> >
> >> Linux(というかUnix系OS)の特徴の一つなのですが、以下のようなことが可能です。
> >
> > それは承知しております。
> > ですので何らかのセキュリティソフトが書いている最中のテンポラリファイルを
> > 消してしまっている可能性を第一に疑っています。
> > ただそれだけに決めつけず幅広く原因を考えたいと思い質問させて頂きました。
> >
> > もしセキュリティソフトが影響しているのでしたら、ちょっとお手上げです。
> > せめて製品名が分かれば開発元に誤検知の報告をして直して貰えるのですが。
> >
> > 2013年8月23日 17:04 Yoshiaki Nakanishi <naka...@brightechno.com <mailto:naka...@brightechno.com> <mailto:naka...@brightechno.com <mailto:naka...@brightechno.com>>>:
> > > 2013年8月23日 15:02 田代透 <toru...@gmail.com <mailto:toru...@gmail.com> <mailto:toru...@gmail.com <mailto:toru...@gmail.com>> <mailto:toru...@gmail.com <mailto:toru...@gmail.com> <mailto:toru...@gmail.com <mailto:toru...@gmail.com>>>>:
> > >
> > > ./mnt/sdcard/xxx/product/
> > > というパスは、エラーの起こる実機で実際にあるパスでしょうか。
> > >
> > > getExternalStorageDirectory()を使用して取得していますか?
> > >
> > > 「1はちゃんとエラー無しでかけていますので」とのことですが、正常に書き込みがされていることは
> > > エラーが起きた実機で確認されましたか?
> > >
> > >
> > >
> > > 2013年8月23日 14:49 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>>>:
> > >
> > > ファイルのpermissionは変更しておりません。
> > > また、close()した次の行でrenameToし、その次の行でopenしていますので
> > > その間に何か処理が入るという事は無いです。
> > >
> > > 2013年8月23日 14:41 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com>> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com>>>>:
> > >
> > > こんにちはfkmです。
> > >
> > > permissionという用語がごっちゃになっててすいません。。。
> > > 「これかな?」と思ったのは、ファイルに対するpermissionです。
> > > Linuxであれば
> > > chmod +x ファイル名
> > > で変更したりするやつです。
> > >
> > > これが、何らかのタイミングで変更されちゃったりは、してないでしょうか?
> > >
> > >
> > > 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>>>:
> > > > permissionは、
> > > > android.permission.WRITE_EXTERNAL_STORAGE
> > > > を付けています。
> > > > そもそも1でちゃんとエラー無しで書けていますので、書き込み権限は
> > > > 問題無いと考えられます。
> > > > ところがrenameToした後にファイルが無くなっているので困っています。
> > > >
> > > > 何かセキュリティソフトが影響していたりするのでしょうか。
> > > >
> > > > 2013年8月23日 14:11 Hirokazu Fukami <fkm...@gmail.com <mailto:fkm...@gmail.com> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com>> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com> <mailto:fkm...@gmail.com <mailto:fkm...@gmail.com>>>>:
> > > >
> > > >> こんにちはfkmです。
> > > >>
> > > >> sdcardが内部ストレージになっている機種で、permissionが無い
> > > >> というケースはどうでしょうか?
> > > >> (Nexus Sでsdcard直下には書けなかった記憶があるので。。。
> > > >>
> > > >>
> > > >> 2013/8/23 Kazuhiko Kobayashi <koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp> <mailto:koba...@pscnet.co.jp <mailto:koba...@pscnet.co.jp>>>>:
> > > >> > 小林と申します。
> > > >> > リリースしているアプリでsdcardのトラブルに悩まされています。
> > > >> > ネットからダウンロードしたコンテンツを以下の手順でsdcardの
> > > >> > アプリ専用フォルダに格納しています(フォルダは機種によって違います)。
> > > >> >
> > > >> > 1./mnt/sdcard/xxx/product/xxx.tmp にダウンロードしたファイルを書く。
> > > >> > 2.それをrenameToで /mnt/sdcard/xxx/product/xxx.zip に書き換える。
> > > >> > 3. xxx.zipファイルを読む。
> > > >> > この3の部分で、xxx.zipが見つからないというエラーがユーザー様のところで
> > > >> > 多発しています。
> > > >> > 1は正常に終了していますのでおそらく2の部分でrenameToが失敗している
> > > >> > のだと思いますが、同一フォルダでrenameToが失敗する事というのは
> > > >> > ハードウェア系のトラブル以外にあるのでしょうか。
> > > >> > 手持ちの端末複数でかなりテストしましたが、どうやっても再現せず
> > > >> > 困っています。
> > > >> >
> > > >> > --
> > > >> > 小林一彦
> > > >> >
> > > >> > --
> > > >> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > >> >
> > > >> > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com> <mailto:android-group-japan%252Buns...@googlegroups.com <mailto:android-group-japan%25252Bun...@googlegroups.com>>>
> > > >> > にメールを送信します。
> > > >> > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>>> にメールを送信してください。
> > > >> >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > >> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> -------------------------------------------------------------
> > > >> 深見 浩和(Hirokazu Fukami)
> > > >>
> > > >> URI:http://www.fkmsoft.jp
> > > >>email:f...@fkmsoft.jp <mailto:email%3A...@fkmsoft.jp> <mailto:email%3A...@fkmsoft.jp <mailto:email%253...@fkmsoft.jp>> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>>>
> > > >>
> > > >> --
> > > >> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > >> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com> <mailto:android-group-japan%252Buns...@googlegroups.com <mailto:android-group-japan%25252Bun...@googlegroups.com>>>
> > > >> にメールを送信します。
> > > >> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>>> にメールを送信してください。
> > > >>http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > > >
> > > >
> > > > --
> > > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com> <mailto:android-group-japan%252Buns...@googlegroups.com <mailto:android-group-japan%25252Bun...@googlegroups.com>>>
> > > > にメールを送信します。
> > > > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>>> にメールを送信してください。
> > > >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > >
> > >
> > >
> > > --
> > > -------------------------------------------------------------
> > > 深見 浩和(Hirokazu Fukami)
> > >
> > > URI:http://www.fkmsoft.jp
> > >email:f...@fkmsoft.jp <mailto:email%3A...@fkmsoft.jp> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp> <mailto:f...@fkmsoft.jp <mailto:f...@fkmsoft.jp>>>
> > >
> > > --
> > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com> <mailto:android-group-japan%252Buns...@googlegroups.com <mailto:android-group-japan%25252Bun...@googlegroups.com>>> にメールを送信します。
> > > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>>> にメールを送信してください。
> > >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > >
> > >
> > > --
> > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com> <mailto:android-group-japan%252Buns...@googlegroups.com <mailto:android-group-japan%25252Bun...@googlegroups.com>>> にメールを送信します。
> > > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>>> にメールを送信してください。
> > >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > >
> > >
> > >
> > >
> > > --
> > > --
> > > Toru Tashiro
> > >toru...@gmail.com <mailto:toru...@gmail.com> <mailto:toru...@gmail.com <mailto:toru...@gmail.com>> <mailto:toru...@gmail.com <mailto:toru...@gmail.com> <mailto:toru...@gmail.com <mailto:toru...@gmail.com>>>
> > >
> > > --
> > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com> <mailto:android-group-japan%252Buns...@googlegroups.com <mailto:android-group-japan%25252Bun...@googlegroups.com>>> にメールを送信します。
> > > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>>> にメールを送信してください。
> > >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> > >
> > >
> > > --
> > > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > > このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> <mailto:android-group-japan%2Bunsu...@googlegroups.com <mailto:android-group-japan%252Buns...@googlegroups.com>> にメールを送信します。
> > > このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> <mailto:android-g...@googlegroups.com <mailto:android-g...@googlegroups.com>> にメールを送信してください。
> > >http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> > > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >
> >
> > --
> > ブライテクノ株式会社
> > 中西 良明
> > 〒101-0032
> > 東京都千代田区岩本町2-13-6 ミツボシ第3ビル
> > e-mail:naka...@brightechno.com <mailto:naka...@brightechno.com> <mailto:naka...@brightechno.com <mailto:naka...@brightechno.com>>

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 6:00:09 AM8/23/13
to android-g...@googlegroups.com
ファイルを消しているMDMソフトのパッケージ名が分かれば
ユーザーにもう少し分かりやすく通知出来るのですが・・・。

以前「sdcard error」とメッセージを出したら、内蔵ストレージに/mnt/sdcardが
取られる機種のユーザー様から
「sdcardを新品と交換しましたが直りません」
という苦情を頂戴しました。
最近はsdcardがsdcardでは無い機種が多いのでどういうメッセージを
出せば良いのか非常に悩みます。

2013年8月23日 18:47 Yoshiaki Nakanishi <naka...@brightechno.com>:

Kazuhiko Kobayashi

unread,
Aug 23, 2013, 6:18:12 AM8/23/13
to android-g...@googlegroups.com
ちなみにウィルス対策ソフトの誤検知は実際にありました。
その時は日本のユーザー様が報告してくださったのでその開発元に
誤検知を報告したところ次の日のパターンのアップデートで直りました。
対応が早くて驚きました。


2013年8月23日 17:59 Yoshiaki Nakanishi <naka...@brightechno.com>:

Toru Ishihara

unread,
Aug 26, 2013, 10:41:56 PM8/26/13
to android-g...@googlegroups.com
遅めのレスで、すいません。

外部SDカードで、FATファイルシステムを使っている場合、書き込み途中で、カードを抜くと、
ファイル内容が不特定になります。FATテーブルに書きこみ中の場合は、ファイルシステムが壊れる
可能性があります。これは、FATファイルシステムが、Transaction Safe でないためです。

xxx.zip に書き込み途中でSDカードが抜かれるとxxx.zip というファイルが不安定な状態で存在して
しまう可能性があります。この場合、rename で失敗します。

ほとんどのファイル書き込みは一瞬で終わるので、めったに起きません。私の経験では、テストを
100回以上した時に、この現象を確認できました。ユーザー数が1000以上の時にも報告を
受けた事があります。

とりあえずは、xxx.zip というファイル名で決め打せずに、日付+プロセスID などでファイル名を
付けると、ある程度は回避できます。




2013年8月23日 3:18 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:

Kazuhiko Kobayashi

unread,
Aug 26, 2013, 11:03:45 PM8/26/13
to android-g...@googlegroups.com
レス有り難うございます。
多分そうだろうと思えるエラーも多数あります。
ただ、内蔵ストレージにsdcard領域を取るタイプの機種でも起きていて、
そのケースはハード的なエラーは考え難いです。
ユーザー数は4万人ほどですが毎日10件ほど苦情が来ます。ほとんど海外からです。
おそらく海外で普及している何かのソフトが影響しているんだろうと
思うのですが、質問しても返事が来ないので詳細が分からず、対応に苦慮しています。

2013年8月27日 11:41 Toru Ishihara <to...@nariuchi.com>:

Kazuhiko Kobayashi

unread,
Jul 7, 2014, 9:32:57 AM7/7/14
to android-g...@googlegroups.com
古い話題で申し訳ないですがやっと原因がわかりました。
ずばりこれでした。
AndroidのMediaScannerやアンチウィルスソフトがファイルをopenしている時にdeleteして
ロックがかかっていたようです。そうなるとopenしているプロセスがファイルをcloseするまでは
同じ名前のファイルを作る事が出来ません。
この場合、delete前にrenameしてやると元のファイル名にロックがかからずうまくいくようです。
このような問題が起きるのはAndroidのファイルシステムがFAT32だからです。
Androidのsdcardはどのアプリからアクセスされるか分かりませんので、こういう事にも
気をつけないといけないのですね。



2013年8月27日 12:03 Kazuhiko Kobayashi <koba...@pscnet.co.jp>:
Reply all
Reply to author
Forward
0 new messages