Apo Commons IO на Android

Я разрабатываю приложение для Android, которое использует Apache Commons IO, commons-io-2.4-bin.tar.gz.

И я получаю некоторые ошибки, один из них:

Could not find method java.lang.String.getBytes, referenced from method org.apache.commons.io.IOUtils.toInputStream

Думаю, мне не о чем беспокоиться, не так ли?

Есть ли другая конкретная библиотека Android, которую я могу использовать вместо Apache Commons IO?

Я использую его здесь:

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.io.IOUtils;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.web.client.DefaultResponseErrorHandler;
import org.springframework.web.client.ResponseErrorHandler;

import android.util.Log;

public class CustomResponseErrorHandler implements ResponseErrorHandler
{

    private ResponseErrorHandler errorHandler = new DefaultResponseErrorHandler();

    @Override
    public void handleError(ClientHttpResponse response) throws IOException
    {
        String theString = IOUtils.toString(response.getBody());
        Log.v("Error Handler", theString);
        CustomException exception = new CustomException();
        Map<String, Object> properties = new HashMap<String, Object>();
        properties.put("code", response.getStatusCode().toString());
        properties.put("body", theString);
        properties.put("header", response.getHeaders());
        exception.setProperties(properties);

        throw exception;
    }

    @Override
    public boolean hasError(ClientHttpResponse response) throws IOException
    {
        return errorHandler.hasError(response);
    }

}

В этой строке:

String theString = IOUtils.toString(response.getBody());

Ответ 1

Guava может стать хорошей заменой для вас. Их wiki утверждает, что они полностью совместимы с Android:

Guava 11.0.2 и более ранние версии полностью совместимы с Android, но для последних выпусков Guava могут потребоваться более поздние версии Android. В частности, NavigableSet и другие расширения, добавленные в Java 6 (используемые Guava 12 и выше), были добавлены в Android API версии 9, соответствующем Gingerbread.

(Android-программистам, заинтересованным в большом размере JAR для Guava, рекомендуется использовать ProGuard для получения только тех частей Guava, которые им нужны. Guava - одна из самых распространенных зависимостей для приложений Android.)

Для эквивалента Guava IOUtils.toString() проверьте следующий вопрос: эквивалент Guava для IOUtils.toString(InputStream)

Ответ 2

Я рекомендую использовать исходный код библиотеки Apache Commons IO, а затем упаковать его на Android:) Я упаковал его в репо здесь. Просто импортируйте его в свою IDE по выбору!