Если у вас есть Android Studio, вы должны изменить build.gradle
вашего основного приложения.
В вашем файле Gradle вы должны указать использование proguard-android-optimize.txt
в качестве файла по умолчанию.
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
// With the file below, it does not work!
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
На самом деле, в файле proguard-android.txt
по умолчанию оптимизация отключена с двумя флагами:
-dontoptimize
-dontpreverify
Файл proguard-android-optimize.txt
не добавляет эти строки, поэтому теперь assumenosideeffects
может работа.
Затем, как сказано в других ответах на Eclipse или просто, вам просто нужно добавить в ваш основной файл proguard строку:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** e(...);
}
Вы не можете рассчитывать на синтаксический анализ даты с помощью SimpleDateFormat, для которого задан другой формат.
Для синтаксического анализа строки даты «Thu Jun 18 20:56:02 EDT 2009» вам понадобится SimpleDateFormat, подобный этому (примерно):
SimpleDateFormat parser=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
Используйте это, чтобы преобразовать строку в Date, а затем другой ваш SimpleDateFormat, чтобы превратить укажите дату в желаемом формате.
String input = "Thu Jun 18 20:56:02 EDT 2009";
SimpleDateFormat parser = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
Date date = parser.parse(input);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(date);
...
JavaDoc: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Как насчет getSelectedDate ? В любом случае, конкретно в вопросе кода, проблема связана с этой строкой:
new SimpleDateFormat("yyyy-MM-dd");
Строка, которая идет в конструктор, должна соответствовать формату даты. Документация о том, как это сделать, находится здесь . Похоже, вам нужно что-то вроде "EEE MMM d HH: mm: ss zzz yyyy"
Проблема в том, что у вас есть дата, отформатированная следующим образом:
Thu Jun 18 20:56:02 EDT 2009
Но вы используете SimpleDateFormat
, то есть:
yyyy-MM-dd
Эти два формата не совпадают. Вам необходимо создать SimpleDateFormat
, который соответствует макету строки, которую вы пытаетесь преобразовать в Date. Чтобы упростить просмотр, вам нужен SimpleDateFormat
вроде этого:
EEE MMM dd HH:mm:ss zzz yyyy
Thu Jun 18 20:56:02 EDT 2009
Проверьте страницу JavaDoc, на которую я ссылаюсь, и посмотрите, как используются символы.