Po co zacząć używać -libraryjars, kiedy nigdy wcześniej tego nie potrzebowałem?

Ponieważ zaktualizowałem ADT z 16 do 18 (co wymagało aktualizacji Proguard z 4.6 do 4.8), Proguard działał bardzo dziwnie (i niespójnie?).

Ostatni taki problem występuje, gdy próbuję wyeksportować podpisany (wydany) APK, otrzymuję następujące błędy:

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)

Zauważyłem zalecenie, aby dodać-libraryjars w proguard.cfg, ale nigdy wcześniej nie musiałem tego robić (i niczego nie zmieniłem w moim kodzie, wszystko, co zrobiłem, to aktualizacja Proguarda z 4.6 do 4.8). Czy to sugeruje coś złego w mojej konfiguracji środowiska programistycznego?

Sprawdziłem także sekcję Rozwiązywanie problemów ProguardaNie można znaleźć klasy przywoływanej: Odnosi się do zapomnienia lub ignorowania w celu określenia biblioteki za pomocą-libraryjars (co muszę przyznać), ale nigdy nie określiłem żadnej biblioteki i tegozawsze pracowałem wcześniej! Co się zmieniło?

Mój plik proguard.cfg BTW zaczyna się od:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

Masz jakiś pomysł, co się dzieje? Dlaczego Proguard zaczął mnie tak męczyć? (Zaczynałem z tym płynnie od ponad roku) Czy w mojej konfiguracji systemu brakuje czegoś podstawowego?

BTW, próbowałem dodać biblioteki, z których korzystałem, podając wszystkie z nich-libraryjars linie, ale zachowanie Proguarda pogorszyło się tylko: zawiodłoby to bez podania żadnego dziennika błędów, który cytowałem powyżej.

questionAnswers(3)

yourAnswerToTheQuestion