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 по выбору!