4

私は Android 開発の初心者です。Play ストアで公開した後、一部のデバイスで以下の例外に直面しています。私にとっては完全に未知の例外です。この例外により、アプリケーションが停止またはクラッシュします。

ログに記録された完全なスタック トレース:

Exception java.lang.SecurityException: Missing permission to insert badges
android.os.Parcel.readException (Parcel.java:1553)
android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:185)
android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:137)
android.content.ContentProviderProxy.insert (ContentProviderProxy.java:476)
android.content.ContentResolver.insert (ContentResolver.java:1213)
android.content.AsyncQueryHandler$WorkerHandler.handleMessage (AsyncQueryHandler.java:96)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:211)
android.os.HandlerThread.run (HandlerThread.java:61)

上記の例外には、私のアプリケーションに関連するコードの一部が含まれておらず、上記の問題に対する満足のいく解決策も見つかりません。

編集: アプリを更新しようとすると、アプリがプレイストアの「必要な許可」セクションに11の新しい許可を表示し始めることを追加した後、プッシュ通知に外部ライブラリ(SDK)を使用しています

これらの権限の一部は次のとおりです。

    com.htc.launcher.permission.READ_SETTINGS
    com.htc.launcher.permission.UPDATE_SHORTCUT
    com.huawei.android.launcher.permission.CHANGE_BADGE
    com.huawei.android.launcher.permission.READ_SETTINGS
    com.huawei.launcher.permission.WRITE_SETTINGS
    com.sec.android.provider.badge.permission.READ
    com.sec.android.provider.badge.permission.WRITE
    com.sonyericsson.home.permission.BROADCAST_BADGE
    com.sonymobile.home.permission.PROVIDE_INSERT_BADGE

私は自分のマニフェスト ファイルにこれらのアクセス許可を追加していないため、次のコード行をアプリケーション タグに追加して「AndroidManifest」ファイルを変更しました。

<application
     <--some code-->
    tools:replace="android:icon, android:allowBackup"
    >

のようにコンパイルする代わりに、SDK の .jar ファイルを使用します。

compile 'com.abc.xyz:3.+@aar' //(build.gradle) の Android Studio に推奨

上記のプロセスを適用した後、それらの許可は削除され、アプリケーションをアップロードします。

新しいバージョンのアプリで実行したのはこれらのことだけです。最近、そのライブラリプロジェクトも調べましたが、内部にいくつかのサブフォルダーと.classファイルを含むフォルダー「shortcutbadger」が含まれています

上記の変更が原因で、その例外を受け取り始めていますか? 説明/助けてください!

4

3 に答える 3

2

デバイスは Samsung ですか? Samsung やその他のブランドには、アプリのアイコンにバッジを追加できるランチャーがあります。おそらく、コードまたはライブラリのコードがそれを使用しようとしていますか?

アプリ マニフェストに適切なアクセス許可を追加する必要があります。

<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
于 2016-08-31T05:27:39.523 に答える
0

「ShortcutBadger」Android ライブラリを使用している場合は、この手順に従う必要があります

API >= 23現在、特別な許可が必要です。やり遂げてみてくださいonRequestPermissionsResult

こちらのURLもチェック

于 2016-08-31T05:28:18.803 に答える