2013-01-22 20 views
15

Próbuję zbudować wersję Androida z Ant i ProGuard. I Odkomentowano następującą linię w project.properties pomimo komentarzu we wspomnianym pliku zauważyć, że nie należy go zmodyfikować;):Nieznane klasy ILicensingInService zauważa podczas zaciemniania projektu Android

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

Kiedy kasował, mam następujące uwagi:

[proguard] Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService' 
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' 

Rozumiem, dlaczego tak się dzieje. Linie te można znaleźć w pliku konfiguracyjnym domyślne ProGuard ($ {sdk.dir} /tools/proguard/proguard-android.txt):

-keep public class com.google.vending.licensing.ILicensingService 
-keep public class com.android.vending.licensing.ILicensingService 

nie używam Usługa licencjonowania w Google, więc zajęcia są naprawdę nieznane. Znalazłem rozwiązanie, aby pozbyć się tych notatek aktualizując PROGUARD-project.txt:

-dontnote **ILicensingService 

Moje pytanie: Czy to jest prawidłowy sposób postępowania z tego? Wydaje mi się, że te klasy nie powinny być przechowywane domyślnie, ponieważ ta biblioteka nie jest obowiązkowa dla projektu Android. Jedynym sposobem na osiągnięcie tego celu jest skopiowanie domyślnego pliku konfiguracyjnego do mojego projektu, usunięcie linii -keep i całkowite ignorowanie domyślnego pliku konfiguracyjnego w SDK. Co też nie wydaje się być właściwym sposobem postępowania. Czy może czegoś brakuje?

Odpowiedz

17

Ustawienie "-dontnote com.google.vending.licensing.ILicensingService" jest w porządku. W rzeczywistości mógł być częścią domyślnego pliku konfiguracyjnego.

  1. Opcja -keep może być konieczna w przypadku projektów korzystających z biblioteki.
  2. Opcję -dontnote może być pomocne w tłumieniu uwagi dotyczącej opcji -keep dla projektów, które nie korzystają z biblioteki. Notatka to delikatne przypomnienie, że plik konfiguracyjny może zawierać literówkę, ponieważ określona klasa wydaje się nie istnieć. Nie wpływa to na przetwarzanie.
+0

Ah, ma sens w pewien sposób. Pójdę więc z opcją -dontnote. Dzięki za opracowanie! Bardzo doceniane. –

+0

Dla odniesienia (Narzędzia SDK 21): Nie uruchamiaj "projektu aktualizacji Android-P". * po * edycji proguard-project.txt i * przed * włączeniem proguard w project.properties. Usunie wszystkie zmiany. Po włączeniu progu, zmiany zostaną zachowane. –

+0

Witam, próbuję zbudować mój projekt za pomocą skryptu kompilacji i ProGuard. również mam ten sam problem. nie można zrozumieć, co zrobić, aby rozwiązać ten problem. więc możesz pomóc z jakimś przykładem, co muszę zrobić. – Raj