1

私のアプリはSyncAdaptersを使用してバックグラウンドでデータを同期します。 OS 8.0を実行しているデバイスでAndroid for Work管理プロファイル用に設定した場合、addAccountExplicitlyを呼び出すとSecurityExceptionがスローされ、正しくアカウントを追加できません。ここでaddAccountは、com.google.android.gmがGET_ACCOUNTSを実行できないため、SecurityExceptionをスローします。

は、コールスタックです:

11-28 17:28:00.182 7291-7291/com.example.android.basicsyncadapter E/CreateSyncAccount: Failed 
    java.lang.SecurityException: com.google.android.gm from uid 10074 not allowed to perform GET_ACCOUNTS 
     at android.os.Parcel.readException(Parcel.java:1942) 
     at android.os.Parcel.readException(Parcel.java:1888) 
     at android.accounts.IAccountManager$Stub$Proxy.addAccountExplicitly(IAccountManager.java:1205) 
     at android.accounts.AccountManager.addAccountExplicitly(AccountManager.java:875) 
     at com.example.android.basicsyncadapter.SyncUtils.CreateSyncAccount(SyncUtils.java:58) 
     at com.example.android.basicsyncadapter.EntryListFragment.onAttach(EntryListFragment.java:148) 

私はピクセルで8.0を実行している2つのGitHubのプロジェクトを使用して、障害を再現しています 指紋=グーグル/マーリン/マーリン:8.0.0/OPR3.170623.013/4397526を:ユーザー/解除 - キー

GitHubのアプリケーション:

  1. https://github.com/googlesamples/android-testdpc
  2. ここで

上記の例外をスロー再現する手順は、次のとおりです

  1. 工場では、デバイスをリセットし、表示されるように、アウトオブボックスの画面を待ちます。
  2. アプリケーションandroid-testdpcをインストールします。 Android for Work管理プロファイルのデバイスの設定を完了します。
  3. ポリシーを変更しないでください。デバイスを再起動しないでください。
  4. アプリケーションandroid-BasicSyncAdapterをインストールして起動します。
  5. Logcatは

をキャプチャします私はam_crash:[7489,0、com.example.android.basicsyncadapter、950582854、java.lang.SecurityException、UID 10075からcom.google.android.gmが許可されていませんGET_ACCOUNTS、Parcel.java、1942]

追加メモ実行する:

  • を私は唯一のAndroid 8.0デバイス上でスローされるSecurityExceptionを見ています。
  • android-BasicSyncAdapterを起動する前にデバイスを再起動しても、SecurityExceptionはスローされません。現在、ユーザーのために提案された回避策。

最初にデバイスを再起動しなくても、addAccountExplicitlyを正常に呼び出す方法を理解しようとしています。

+0

このクラッシュの解決策はありますか? – bGorle

+0

OSビルド8.1で実行中にSecurityExceptionがスローされなくなったという回答を投稿しました。 –

答えて

0

私のGoogle Pixelデバイスに、私がインストールした8.1アップデートが届きました。二つのアプリケーションで再試験:

  1. https://github.com/googlesamples/android-testdpc
  2. https://github.com/googlesamples/android-BasicSyncAdapter

次に再現手順以下、SecurityExceptionがスローされなくされています。

問題を解決するために変更されたテストアプリケーションではないことを確認するために、Pixelデバイスを指定された8.0 ROMイメージでフラッシュしました。再試行され、同じようにSecurityExceptionがスローされます。

問題は、OSバージョン8.0以降に修正されているようです。

+0

私は8.0エミュレータで2つのアプリケーションをインストールしましたが、クラッシュはありませんでした。 クラッシュの基本的な理由は、あるアプリが、同じアカウントを作成しようとしている「accountType」と同じアカウントを既に作成している可能性があります。 – bGorle

関連する問題