Google Play "Родные платформы", показывающие commons-io-2.4.jar
Я только что столкнулся с очень странной проблемой, когда сборка моего приложения для распространения через бета-канал Google Play отказывалась от развертывания на любых устройствах. Некоторое расследование и некоторая помощь Google показали, что проблема была в том, что при сверлении до детали APK на консоли Google Play:
![screenshot of Google Play console]()
Что могло быть причиной этого? Вот как была определена зависимость в моем build.gradle
:
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
и APK был построен следующим образом:
gradle clean
gradle assembleMarketRelease
где market
является одним из ароматов продукта. Приложение устанавливается и работает отлично, когда загружено боком.
Я работал над проблемой, удалив эту зависимость и переопределив недостающую функциональность самостоятельно, и теперь приложение развертывается, как ожидалось. Но я хотел бы понять основную проблему. Я неправильно задал зависимость? Я неправильно построил?
Связанный: Консоль разработчика Google Play показывает раздел DS_Store в разделе "Нативные платформы" загруженного Apk
Ответы
Ответ 1
EDIT: ответ Pang на самом деле правильный fooobar.com/questions/310467/.... Я сохраню этот ответ, поскольку он разрешил аналогичную проблему.
Сегодня я столкнулся с такой же проблемой. Я загрузил свой apk, и консоль рассказала мне, что у apk была собственная платформа "joda-convert-1.5.jar". Удивительно, но я не использовал эту банку прямо. После исследования выяснилось, что банку использовали другую библиотеку, которую я использовал. И это было в папке "lib" этой банки. Поскольку у меня был исходный код этой библиотеки, я перекомпилировал эту библиотеку, поместив эту "joda-convert-1.5.jar" в папку "libs". И очистил и перекомпилировал приложение. Все было исправлено.
Кажется, что все в папке "lib" рассматривается как родная библиотека, и, следовательно, консоль разработчика показывает это так. Убедитесь, что библиотеки находятся в папке "libs".
Надеюсь, что это поможет.
Ответ 2
Я исправил его, заменив
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
с
compile 'commons-io:commons-io:2.4'
в файле build.gradle.
Я нашел это следующим образом: