Подтвердить что ты не робот

Кордова Android Camera - выдача запрета на использование аргументов

Я начал программировать Android на 2 месяца назад. Все было прекрасно, в основном камера, которая сейчас не работает. Но на прошлой неделе некоторые из них как мой каталог проекта были удалены, и я переустановил весь плагин кордовы и выполнил проект, но теперь его показ ошибки "незаконное исключение аргумента" на экране камеры неожиданно удивляет: я не менял одну строку кода, а также работал правильно на другой машине разработчика.

плагин cordova добавить кордову-плагин-камеру команда, используемая при установке плагина камеры.

файл camera_app.js

var pictureSource; // picture source
var destinationType; // sets the format of returned value


// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
//
function onDeviceReady() {
    pictureSource = navigator.camera.PictureSourceType;
    destinationType = navigator.camera.DestinationType;

}


// Called when a photo is successfully retrieved
//
function onPhotoURISuccess(imageURI) {
    // largeImage.src = imageURI;
    console.log(imageURI);
    console.log(document_type);


}

function getPhoto(docType) {
    // Retrieve image file location from specified source
    document_type = docType
    $('.docError').hide();
    navigator.camera.getPicture(onPhotoURISuccess, onFail, {
        quality: 50,
        destinationType: destinationType.FILE_URI
    });
}


$('#file1').click(function() {
    console.log('On camera click');
    getPhoto("addressProof");
});

Я попытался отлаживать код, наконец, нашел его из-за пути провайдера - java.lang.IllegalArgumentException: отсутствующие метаданные android.support.FILE_PROVIDER_PATHS

но я уже добавил метаданные пути поставщика в XML файл Android, так как он автоматически добавляется, когда вы добавляете плагин cordova.

 <provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
        </provider>

плагин cordova -

cordova-plugin-app-версия 0.1.9 "AppVersion" cordova-plugin-camera 2.4.1 "Камера" cordova-plugin-compat 1.1.0 "Совместимость" cordova-plugin-whitelist 1.3.2 "Белый список" кордова-sqlite-хранилище 1.4.9 "Плагин для хранения кордонов sqlite" ионная плагин-клавиатура 2.2.1 "Клавиатура"

платформа кордовы -

Установленные платформы: android 6.2.3 Доступные платформы: blackberry10 ~ 3.8.0 (устаревший) браузер ~ 4.1.0 webos ~ 3.7.0 windows ~ 5.0.0

Версия NPM - {npm: '3.10.3', ares: '1.10.1-DEV', http_parser: "2.7.0", icu: '57.1 ', модули: "48", node: "6.4.0", openssl: '1.0.2h', uv: '1.9.1', v8: "5.0.71.60", zlib: '1.2.8'}

4b9b3361

Ответ 1

Это было очень просто и просто. Просто добавьте свой файловый провайдер ниже к своей активности пусковой установки. В моем случае у меня была какая-то обычная деятельность, и по ошибке провайдер был добавлен в нижней части всей активности, и моя догадка - это кордова, которая не может прочитать этого провайдера, почему он давал java.lang.IllegalArgumentException: отсутствующие метаданные android.support.FILE_PROVIDER_PATHS

Ответ 2

У меня была аналогичная проблема сегодня. Пробовал все (переустановите плагин, переустановите плагин из источника, переустановите более старую версию плагина), но ничего не помогло. Не знаю, почему, но после - убийство эмулятора - > Кордова чистая андроид - > Кордоба платформы удалить андроид - > Кордоба платформы добавить android - > Флейм - подключение моего устройства - > Продвинутый пользователь он работает снова, как и раньше:-) Я до сих пор не знаю, почему. Попробуйте это на свой страх и риск. Возможно, это помогает.