Поскольку я обновлял ADT с 16 по 18 (что требовало обновления Proguard от 4.6 до 4.8), Proguard действовал очень странно (и непоследовательно?).
Самая последняя такая проблема - когда я пытаюсь экспортировать подписанный (выпуск) APK, я получаю следующие ошибки:
Proguard returned with error code 1. See console
Warning: com.bta.LibProj2: can't find referenced class com.bta.R$string
Warning: com.bta.MyDlg1: can't find referenced class com.bta.R$string
Warning: com.bta.MyMenu: can't find referenced class com.bta.R$menu
Warning: com.bta.R: can't find referenced class com.bta.R$attr
Warning: com.bta.R: can't find referenced class com.bta.R$drawable
Warning: com.bta.R: can't find referenced class com.bta.R$menu
Warning: com.bta.R: can't find referenced class com.bta.R$string
Warning: com.bta.myapp.MyAppActivity$1: can't find referenced class com.bta.myapp.MyAppActivity
Warning: com.bta.myapp.MyAppActivity$ELicenseResponse: can't find referenced class com.bta.myapp.MyAppActivity
Warning: com.bta.myapp.MyAppActivity$MyLicenseCheckerCallback$1: can't find referenced class com.bta.myapp.MyAppActivity$MyLicenseCheckerCallback
Warning: com.bta.myapp.MyAppActivity$MyLicenseCheckerCallback$1: can't find referenced class com.bta.myapp.MyAppActivity
Warning: com.bta.myapp.R$array: can't find referenced class com.bta.myapp.R
Warning: com.bta.myapp.R$layout: can't find referenced class com.bta.myapp.R
Warning: com.bta.myapp.R$xml: can't find referenced class com.bta.myapp.R
Warning: there were 49 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:321)
at proguard.ProGuard.initialize(ProGuard.java:212)
at proguard.ProGuard.execute(ProGuard.java:87)
at proguard.ProGuard.main(ProGuard.java:493)
Я заметил рекомендацию добавить -libraryjars
в proguard.cfg, но мне никогда не нужно было этого делать раньше (и я ничего не менял в своем коде, все, что я делал, это обновление Proguard от 4.6 до 4.8). Означает ли это, что-то не так в моей конфигурации среды разработки?
Кроме того, я проверил раздел "Устранение неполадок Proguard" для Не удалось найти ссылочный класс: это означает забыть или игнорировать указание библиотеки через -libraryjars
(что я допускаю), но я никогда не указывал какую-либо библиотеку, и она всегда работала раньше! Что изменилось?
Мой файл proguard.cfg BTW начинается с:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
Любая идея, что происходит? Почему Proguard начал давать мне такое тяжелое время? (Я очень быстро с ним справлялся с ним уже более года) Есть ли что-то фундаментальное, чего я не вижу в своей конфигурации системы?
Кстати, я попытался добавить библиотеки, которые я использовал, указав их все в строках -libraryjars
, но поведение Proguard только ухудшилось: он потерпит неудачу, не предоставив ни одного из журнала ошибок, который я привел выше.