Intereting Posts
Каков цвет по умолчанию для разделителя ListView? CSS Media Query – Soft-клавиатура нарушает правила ориентации CSS – альтернативное решение? Android Spinner – Как выбрать список по умолчанию для ни одного Передать ArrayList из модуля android в ядро ​​в libgdx Как изменить цвет фона сохраненного прозрачного растрового изображения Как использовать перехватчик для добавления заголовков в «Дооснащение 2.0» Окно Android не изменяет размер / панорамирование при открытии softinput из WebView Является ли этот пользовательский CursorAdapter для ListView правильно кодированным для Android? Android AlertDialog внутри анонимной функции Можем ли мы создать new_strings.xml с помощью strings.xml в папке значений для строк sting (Android)? Android-диагональные треугольные кнопки Как сохранить данные фрагмента после транзакций backstack? Выполнение всех запланированных (postDelayed) runnables в обработчике Разница между getApplicationContext и classname.this Как открыть одну конкретную папку из галереи в android?

«Не может найти ссылочный класс» с Proguard и Kotlin

У меня странная проблема с прогард и котлин. Я постепенно превращаю прогвардированный проект в kotlin – который прошел очень хорошо до сих пор, но я получаю ошибки proguard при преобразовании определенных классов. Я еще не мог изолировать то, что особенное свойство этих классов так ломает – они, похоже, не отличаются от других. В качестве примера InputStreamWithSource:

package org.ligi.passandroid.model import java.io.InputStream class InputStreamWithSource(val source: String, val inputStream: InputStream) 

И он полностью работает в среде IDE – я могу развернуть его на устройстве – все тесты UI работают нормально. Просто при попытке собратьСоздание проекта я получаю ошибки proguard, которые я не понимаю:

 Warning: org.ligi.passandroid.ui.FileUnzipControllerSpec: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.FileUnzipControllerSpec: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.InputStreamProvider: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.InputStreamProvider: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.InputStreamProvider: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.InputStreamProvider: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.InputStreamProvider: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.InputStreamProvider: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassImportActivity$ImportAndShowAsyncTask: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassImportActivity$ImportAndShowAsyncTask: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassImportActivity$ImportAndShowAsyncTask: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassImportActivity$ImportAndShowAsyncTask: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassImportActivity$ImportAndShowAsyncTask: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassViewActivityBase$UpdateAsync: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassViewActivityBase$UpdateAsync: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.PassViewActivityBase$UpdateAsync: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.SearchPassesIntentService: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassController: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassController: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassController$InputStreamUnzipControllerSpec: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassController$InputStreamUnzipControllerSpec: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassController$InputStreamUnzipControllerSpec: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassController$InputStreamUnzipControllerSpec: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassDialog: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassDialog: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassDialog$1AlertDialogUpdater: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource Warning: org.ligi.passandroid.ui.UnzipPassDialog$1AlertDialogUpdater: can't find referenced class org.ligi.passandroid.model.InputStreamWithSource 

Когда я добавляю dontwarn для этих классов в конфигурацию proguard, чем это происходит во время выполнения, поэтому эти классы действительно удалены, но они не должны удаляться по мере их использования.

Я могу обойти эту проблему, добавив класс / enum для этих классов в proguard-config – но вопрос в том, почему это необходимо для этих классов – имхо не нужно

У кого-то есть какая-то идея, что может вызвать это или как лучше всего расследовать эту проблему? Полный источник находится здесь: https://github.com/ligi/PassAndroid

Я бы удостоверился, что у меня есть собственный пакет, определенный в proguard – что-то вроде этого:

 -dontwarn org.ligi.passandroid.** -keep class org.ligi.passandroid.** { *; }