メインコンテンツまでスキップ

-8600〜-8611, -8624 (モバイル SDK ストレージ入出力エラー)

お知らせ

このドキュメントは機械翻訳で作成された下書きであり、現在レビュー中です。機械翻訳の特性上、一部の内容が不正確であったり、韓国語の原文と異なる場合があります。より正確な情報については、韓国語のドキュメントをご参照ください。

モバイル SDK がダウンロードファイルおよびデータベース(DB)を読み書きする過程で発生するファイルシステムエラーです。ファイル入出力およびデータベースの状態によって原因が異なるため、連携環境を確認してください。

エラーコード一覧

エラーコードタイプ説明
-8600ERROR_CREATE_DIRECTORYディレクトリ作成失敗
-8601ERROR_CREATE_FILEファイル作成失敗
-8602ERROR_SAVE_DATAファイルデータ保存失敗
-8603ERROR_OPEN_DBDB ファイルオープン失敗
-8604ERROR_CREATE_TABLEDB テーブル作成失敗
-8605ERROR_SELECT_TABLEDB テーブル照会失敗
-8606ERROR_DELETE_RECORDDB レコード削除失敗
-8607ERROR_INSERT_RECORDDB レコード追加失敗
-8608ERROR_OPEN_FILEファイルオープン失敗
-8609ERROR_OUT_OF_MEMORYメモリ不足による処理失敗
-8610ERROR_READ_FILEファイル読み込み失敗
-8611ERROR_WRITE_FILEファイル書き込み失敗
-8624ERROR_UPDATE_RECORDDB レコード更新失敗

原因 A: ストレージアクセス権限なし

アプリケーションがデバイスの外部ストレージ(SD カード)や特定のディレクトリにアクセスしてデータを書き込むための物理的な権限がない場合に発生します。

  • Android: Android 6.0(API 23)以上の環境でランタイム権限を明示的に取得していない場合、または Android 10(API 29)以上のスコープ付きストレージ(Scoped Storage)セキュリティポリシーに違反して外部ストレージへの直接アクセスが制限される現象です。
  • iOS: システムアプリのサンドボックス内部空間(DocumentsLibrary フォルダなど)ではなく、セキュリティ権限が制限された外部パスを KollusStorage の保存先として誤って指定した場合です。

診断および解決方法

  • Android: アプリケーションの現在の外部ストレージ書き込み権限の割り当て状態を確認し、ターゲット API バージョンに応じたメディアストレージアクセスポリシーを把握してください。
// Android 6.0 or later - Check whether runtime permission has been granted
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Request permission from the user
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQ_CODE);
}
  • iOS: KollusStorage インスタンスの保存パス設定が正しいか確認してください。

原因 B: デバイスのストレージ容量不足

デバイスのストレージ容量がなく、ファイルの作成および書き込み(Write)ができない場合に発生します。 容量不足の状態でダウンロードをリクエストすると、該当エラーコードとともに -8623(ERROR_STORAGE_FULL)エラーが発生します。

解決方法

ダウンロードを開始する前に、以下の例を参考にデバイスの空き容量を事前に確認してください。

  • Android
long available = new File(downloadPath).getUsableSpace();
// Check if available space is sufficient before starting the download
  • iOS
let freeSpace = DiskStatus.freeDiskSpaceInBytes
if freeSpace < requiredBytes {
// Notify the user of insufficient device storage space
}

ユーザーへの案内(例)

"ストレージ容量が不足しています。不要なファイルを削除してから再度お試しください。"


原因 C: DB ファイルの破損

アプリの強制終了または異常終了、ダウンロード中のストレージの物理的な切断(外部 SD カードの強制取り外し)などにより、内部 SQLite データベースが破損した場合に発生します。 主に -8603(DB オープン失敗)および -8604(テーブル作成失敗)のパターンで返されます。

解決方法

破損した DB ファイルを削除した後、再初期化ロジックをトリガーする必要があります。このプロセスを実行するとダウンロード済みコンテンツのリストが初期化されるため、ユーザーに再ダウンロードを案内してください。

  • Android: KollusStorage インスタンスの解放 → DB ファイルの削除 → 再作成
// Create Android DB file object and delete the file
File dbFile = new File(context.getFilesDir(), "kollus_storage.db");
if (dbFile.exists()) dbFile.delete();
// Re-initialize KollusStorage after deletion

ユーザーへの案内(例)

"データエラーが発生しました。アプリを再起動するか、コンテンツを再ダウンロードしてください。"


共通診断ガイド

入出力例外エラーが発生した場合、以下のチェックリストをもとに現象を把握して対応してください。

  1. -8623(ERROR_STORAGE_FULL)エラーが同時に発生しましたか?
  2. 初回インストール直後または Android バージョンの更新後にエラーが発生しましたか?
  3. 正常に動作していたデバイスで突然エラーが発生しましたか?
  4. 上記 3 つのいずれにも該当しない場合は?
    • 詳細なエラーコード、デバイスの OS バージョン、デバイスのモデル名、再現方法などを収集して、営業担当者(jp_sales@catenoid.net)までお問い合わせください。