После попытки декодирования Base64, получая E / AndroidRuntime: FATAL EXCEPTION: main - PullRequest
0 голосов
/ 06 ноября 2019

Я создаю простое приложение для Android 4.4 и выше, у меня есть метод для декодирования строки base64 с использованием библиотеки apache-commons-codec.

import org.apache.commons.codec.binary.Base64;

public static String decodeBase64(String toDecode) {
    byte[] decoded = Base64.decodeBase64(toDecode);

    return new String(decoded);
}

но когда я вызываю этот статический метод изосновной (например, className.decodeBase64 (VAR)) я получаю следующую ошибку. журнал ошибок

В настоящее время я использую JDK 8 и последнюю версию Android Studio. Я знаю, что jdk8 реализует кодировщик / декодер base64, но я не могу его использовать, потому что я ограничился программированием до более поздних версий Android на 8.0

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

После двух дней поиска я нашел хорошее решение.

Просто нужно заменить apache.commons на android.util.Base64, который скажет ...

метод будет выглядеть следующим образом:

import android.util.Base64;

public static String DecodeBase64(String toDecode){
    byte[] decodeValue = Base64.decode(toDecode, Base64.DEFAULT);
    return new String(decodeValue);
}

также, если кто-то знает, как решить исходную ошибку и, пожалуйста, объясните мне, почему это произошло, было бы полезно

0 голосов
/ 06 ноября 2019

Это может быть проблема с версией библиотеки. Какую версию commons-codec вы используете в своем файле build.gradle? Попробуйте обновить его до последней версии, которая 1.13. Также это может быть решением вашей проблемы: Кодек Apache Commons с Android: не удалось найти метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...