2014-11-13 8 views
0

У меня есть довольно большой проект с продуманным proguard.cfg.ant release proguard терпит неудачу, но под затмением работает

  • Этот проект основан ОК при затмении, ProGuard работает без ошибок, и приложение работает отлично, это был мой нормальный рабочий процесс в течение нескольких месяцев.

Я пытаюсь построить его из командной строки с помощью муравья.

Я обновил build.xml и т.д .. по проектам и его проект библиотеки с использованием

android update project -p . 
android update project -s --target android-17 -p . 
  • отладочной версии, ant debug, будет построен успешно
  • Однако ant release терпит неудачу proguard , жалуясь на отсутствие классов.

Из-за того, что я мог расшифровать (появилось много предупреждений о нештатной ситуации), проблемы связаны с отсутствующим внутренним классом в одном из моих (тысяч) классов и отсутствием R (ресурсов) зависимого проект библиотеки. Это странно, обе вещи существуют, проекты библиотек строятся ОК от eclipse & ant, и этот внутренний класс я не знаю, родительский класс довольно тривиален.

Почему он строится под затмением и не использует командную строку? Разве обновленные скрипты сборки не дают одинаковый результат?

Proguard: Ошибки, связанные с Библиотечный проект ресурсов

[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$id 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$id 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.SlidingMenu: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$styleable 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.SlidingMenu: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$styleable 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.SlidingMenu: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$layout 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$layout 
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R 

Proguard: относящиеся к внутреннему классу не найден

[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$2: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1 
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$3: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1 
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$SimpleAnimationListener: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1 
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$SimpleAnimationListener: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1 
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$SimpleAnimationListener: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1 
+0

Возможно, вам стоит закрыть некоторые параметры проверки ошибки lint. Я встретил аналогичную ситуацию в градиенте (в градиенте я установил 'lintOptions.abortOnError' и' lintOptions.checkReleaseBuilds' значение false) .Eclipse может закрыть ошибку lint проверьте при экспорте apk, так что было бы хорошо. – AvatarQing

+0

Хотя ошибки кажутся более связанными с proguard, у вас есть хорошая точка, на самом деле, в Eclipse у меня есть LINT, почти отключенный, потому что он увеличивает время сборки каждый раз, когда я изменяю ресурс. Вы знаете, как я могу отключить его в Ant? – rupps

+0

Прошу прощения, я не знаю об использовании Ant. Может быть, вы можете задать новый вопрос об этом ... – AvatarQing

ответ

0

Это странно, я нашел проблему методом проб и ошибок.

Внутренний класс не найден был невинным частный анонимный работоспособной как:

private Runnable mBlinkRunner=new Runnable() { 

    public void run() { 
     . 
     . couple simple lines 
     . 

    } 
}; 

Я изменил его ...

protected Runnable mBlinkRunner=new Runnable() { 

    public void run() { 
     . 
     . couple simple lines 
     . 

    } 
}; 

и это сработало ... Интересно, почему это происходит, в проекте должны быть сотни подобных версий.