Proguard: предотвращение конфликтов имен с предварительно запутанными библиотеками JAR

Похоже, Proguard не пытается избежать конфликтов имен с классами в библиотечных JAR-файлах при переименовании / переупаковке классов. Это правильно, или я просто неправильно настроил его?

Я запутываю приложение Android, которое использует последнюю версию Google AdMob SDK. Раньше я без проблем использовал старый AdMob SDK. Новый файл SDK JAR содержит некоторые классы, которые были запутаны. Один из этих классов - a.class в пакете по умолчанию / без названия. Когда я запутываю свое приложение, Proguard переименовывает / переупаковывает один из моих классов, чтобы он также был a.class в безымянном пакете, несмотря на то, что он прочитал в AdMob JAR как библиотечный JAR (поэтому он должен знать, что это вызовет конфликт). Как и ожидалось, моя сборка завершится неудачно, когда инструмент dx попытается объединить эти два класса с одинаковыми именами в один файл .dex.

В качестве обходного пути я перенастроил Proguard так, чтобы он перемещал все мои классы в один. именованный пакет (всего одна буква), чтобы избежать конфликтов с классами Google, но мне интересно узнать, есть ли лучшее решение или это ограничение текущей версии (4.6) Proguard?

6
задан Dan Dyer 26 April 2011 в 11:16
поделиться