APK xətaları

SecurityException: icazə verilməyib

Xəta mətni

java.lang.SecurityException: Permission Denial: opening provider ... requires android.permission.READ_MEDIA_IMAGES
SecurityException: Neither user 10123 nor current process has android.permission.CAMERA

Səbəb

Kod icazə tələb edən əməliyyatı çağırır, amma ya manifestdə icazə yoxdur, ya da istifadəçi iş vaxtında icazə verməyib.

Addım-addım həll

  1. AndroidManifest.xml-də <uses-permission> sətrinin olduğunu yoxla.
  2. Təhlükəli icazələr (kamera, məkan, mikrofon) iş vaxtında requestPermissions və ya Activity Result API ilə soruşulmalıdır.
  3. Android 13+ üçün READ_EXTERNAL_STORAGE əvəzinə READ_MEDIA_IMAGES kimi yeni icazələri istifadə et.
  4. İcazə rədd edilərsə, tətbiq çökməməli, izahlı mesaj göstərməlidir.
  5. Test üçün adb shell pm grant ilə icazəni ver və ya pm reset-permissions ilə sıfırla.

Nümunə əmrlər

adb shell pm grant com.example.app android.permission.CAMERA
adb shell dumpsys package com.example.app | grep -A3 "granted=false"
adb shell pm reset-permissions

Təkrarlanmasın deyə

Hər icazəni ilk istifadədən dərhal əvvəl və izahatla soruş.

Müəllif və lisenziya: Nibras Code