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