Использование dontwarn в proguard

Я успешно использую proguard, но всякий раз, когда я добавляю внешнюю библиотеку (те, что относятся к рекламе), proguard терпит неудачу с сообщением «не могу найти ссылку... и т. д.». Я пробовал много комбинаций, таких как библиотечные банки, инжекторы... и т. д., но не повезло.

Затем я использовал опцию «-dontwarn» для внешнего файла, и все заработало волшебным образом. Это плохо делать? Я имею в виду, есть ли проблема, которую я не вижу при обработке внешних банок с использованием этого атрибута?

Спасибо


person Snake    schedule 09.09.2013    source источник
comment
Где вы добавили -dontwarn в файл proguard? Какая именно линия? и как?   -  person Ali Obeid    schedule 15.07.2017


Ответы (1)


Для предупреждений об отсутствии сторонних классов варианты -ignorewarnings или -dontwarn, вероятно, подойдут. Если код уже работает в режиме отладки, это означает, что перечисленные недостающие классы никогда не используются. Затем вы можете указать ProGuard продолжить обработку кода в любом случае.

Чтобы получать предупреждения об отсутствующих классах, полях или методах среды выполнения Android, вы должны создавать достаточно новую среду выполнения Android, указанную в project.properties. Вы по-прежнему можете ориентироваться на более старую среду выполнения Android в AndroidManifest.xml.

См. руководство ProGuard > Устранение неполадок:

Обратите внимание, что вам не следует добавлять в конфигурацию параметры -injars или -libraryjars, поскольку стандартные процессы сборки Ant/Eclipse/Gradle автоматически указывают их за вас.

person Eric Lafortune    schedule 13.09.2013
comment
Спасибо, Эрик. но проблема в том, что он жалуется на классы, на которые ссылается внешний jar, и используемые классы/методы находятся в стандартной библиотеке Android (например, android.View) - person Snake; 15.09.2013
comment
Я расширил ответ на предупреждения об отсутствующих классах и методах Android. - person Eric Lafortune; 16.09.2013