2017-02-02 3 views
0

Nach der Zugabe von ProGuard Regeln für alle Bibliotheken aufgelöst werden Ich verwende, bekomme ich immer noch diese Warnung:Wie, um herauszufinden, welche Klassen nicht von ProGuard Android

 
Warning: there were 14 unresolved references to classes or interfaces. 
     You may need to add missing library jars or update their versions. 
     If your code works fine without the missing classes, you can suppress 
     the warnings with '-dontwarn' options. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) 

Ich weiß, dass ich wahrscheinlich die -dontwarn Option verwenden können diese Warnung loswerden, aber ich muss daher wissen, welche Pakete/Klassen/Schnittstellen nicht gelöst werden können. Android unterstützt kein globales "-dontwarn".

In der Protokolldatei finde ich so viele Hinweise und Warnungen, aber keiner von ihnen scheint die obige Nachricht zu beziehen.

+1

eigentlich tut es: '-dontwarn **' – Malik

+0

naja ja, das stimmt, danke fürs Hinweisen. Obwohl dies gut ist, um den Build für andere Probleme zu testen, ist es nicht wirklich, was man tun sollte. Warnungen gibt es aus einem Grund. Kennst du auch die Antwort auf meine Frage? – muetzenflo

+0

Die Verwendung von '-dontwarn **' kann gefährlich sein, wenn Sie später eine neue Abhängigkeit zu Ihrem Projekt hinzufügen, ohne die entsprechende ProGuard-Konfiguration. Die Abhängigkeit wäre gebrochen, aber '-dontwarn **' würde das Problem maskieren, bis es sich zeigt (wahrscheinlich, wenn Ihre Binaries bereits in Produktion sind). –

Antwort

0

Wenn Sie erhalten eine Warning: there were X unresolved references to classes or interfaces dann für Zeilen schauen Sie in Ihrem Buildprotokoll, das das Wort Warning, wie diese enthalten:

Warning: com.package.Class1: can't find referenced class org.library.Class2 

Zeilen wie diese wird zeigen, welche Klassen ProGuard versucht zu arbeiten und die Klassen kann nicht in den Eingabekästen gefunden werden. Im obigen Beispiel würde die Klasse Class1 auf Class2 einer Bibliothek verweisen, aber Class2 wurde im Build-Pfad nicht gefunden.

Wie Sie bereits erwähnt haben, können Sie einfach -dontwarn <class regex> hinzufügen, um diese Warnungen zu ignorieren, aber Sie sollten sie idealerweise einzeln überprüfen, um sicherzustellen, dass Ihre Konfiguration korrekt ist und alle erforderlichen Abhängigkeiten korrekt importiert werden.

Verwandte Themen