Docs Menu
Docs Home
/ /
Atlas Device SDK
/

トラブルシューティング - Kotlin SDK

項目一覧

  • iOS/IP OS が無効な割り当て/メモリが不足しています
  • カスタム Android ROM 上のシステム アプリで を使用する

使用可能なメモリがほとんどない iOS または IP デバイス、または複数の Realm や多数の通知を使用するメモリ集中型のアプリケーションでは、次のエラーが発生する可能性があります。

libc++abi: terminating due to an uncaught exception of type std::bad_alloc: std::bad_alloc

このエラーは通常、十分なメモリが利用できないため、リソースを割り当てることができないことを示します。

iOS15 + または iOS15 + 用にビルドしている場合は、 拡張仮想アドレス指定権限 を追加できます この問題を解決するには、 を使用します。

これらのキーをプロパティ リストに追加し、値を trueに設定します。

<key>com.apple.developer.kernel.extended-virtual-addressing</key>
<true/>
<key>com.apple.developer.kernel.increased-memory-limit</key>
<true/>

Atlas Device SDK は、通知をサポートし、複数のプロセスからの Realm ファイルにアクセスするために、名前付きパイプを使用します。 これは通常のユーザー アプリではデフォルトで許可されていますが、システム アプリでは許可されていません。

システムアプリは、Android マニフェストでandroid:sharedUserId="android.uid.system"を設定することによって定義されます。 システム アプリの場合、Logcat には次のようなセキュリティ違反が表示される場合があります。

05-24 14:08:08.984 6921 6921 W .realmsystemapp: type=1400 audit(0.0:99): avc: denied { write } for name="realm.testapp.com.realmsystemapp-Bfqpnjj4mUvxWtfMcOXBCA==" dev="vdc" ino=14660 scontext=u:r:system_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir permissive=0
05-24 14:08:08.984 6921 6921 W .realmsystemapp: type=1400 audit(0.0:100): avc: denied { write } for name="realm.testapp.com.realmsystemapp-Bfqpnjj4mUvxWtfMcOXBCA==" dev="vdc" ino=14660 scontext=u:r:system_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir permissive=0

これを修正するには、ROM 内の SELinux セキュリティ ルールを調整する必要があります。 これは、ツールaudit2allowを使用して実行できます。 このツールは AOSP の一部として提供されています。

  1. デバイスから現在のポリシーを取得します: adb pull /sys/fs/selinux/policy

  2. SELinux エラーをinput.txtというテキストファイル内にコピーします。

  3. audit2allowツールを実行します: audit2allow -p policy -i input.txt

  4. ツールは、既存のポリシーに追加できるルールを出力します。 このルールにより、複数のプロセスから Realm ファイルにアクセスできます。

audit2allow は AOSP/ROM をコンパイルするときに生成され、Linux でのみ実行されます。 Android ソースのドキュメント で詳細を確認してください 。また、Android または 以降、Google は SELinux の構成方法を変更し、デフォルトのセキュリティ ポリシーがよりモジュール化されている点にも注意してください。 詳しくは、 Android ソースのドキュメント を参照してください。

戻る

ログ記録