Cordova - приложение Android вылетает при запуске из-за разрешения контакта
У меня проблема, которую я нашел причину, но я не смог ее решить.
Мое приложение cordova падает на Android 8.0.0. Я сделал logcat, который показал, что приложение пытается получить доступ к контактам.
Странно то, что у меня нет ни плагина для контактов, ни использования контактов в моем приложении.
На logcat у меня есть эта ошибка:
12-11 17: 29: 42.094 E / AndroidRuntime (5609): java.lang.RuntimeException: java.lang.RuntimeException: java.lang.SecurityException: Отказ в разрешении: открытие поставщика com.android.providers.contacts.ContactsProvider2 от ProcessRecord{6155964 5609:com.pierrickmartelliere.UPHAIRR/u0a210} (pid=5609, uid=10210) требует android.permission.READ_CONTACTS или android.permission.WRITE_CONTACTS
Я все перепробовал, добавил
<config-file parent="/manifest" target="AndroidManifest.xml">
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
</config-file>
к моему config.xml
, он хорошо добавляет AndroidManifest.xml при сборке, но я все еще получил ошибку.
Я пробовал оба тега uses-permission
а также uses-permission-sdk
как указано здесь, но без везения.
Моя версия Cordova-Android является 6.2.3
Я также попробовал cordova-plugin-Разрешение, как в слушателе устройства уже:
var permissions = cordova.plugins.permissions;
permissions.requestPermission(
permissions.READ_CONTACTS,
function(success) {},
function(error) {}
);
permissions.requestPermission(
permissions.WRITE_CONTACTS,
function(success) {},
function(error) {}
);
Но ничего не изменилось. Приложение аварийно завершает работу до события "deviceready", поэтому я ничего не могу сделать во время выполнения.
Как указано здесь, если я изменю targetSdkVersion ниже 23 (даже 25), сбой исчезнет, но я больше не смогу загрузить его в Google Play, так как игровая консоль не принимает targetSdkVersion < 26.
Кроме того, если я вручную разрешаю доступ к контакту из настроек приложения и принудительно останавливаю и перезапускаю приложение, это работает. Это сводит меня с ума.
Некоторая помощь в этом была бы очень признательна.
Спасибо всем, кто найдет время, чтобы прочитать или ответить.
1 ответ
Я наконец-то опубликовал вопрос в gordub cordova-android. Я быстро получил ответ:
ОБНОВЛЕНИЕ Cordova-Android для 7.1.4!