Android: Как исключить дублирующиеся классы при импорте FAT JAR? - PullRequest
0 голосов
/ 25 октября 2019

После импорта FAT JAR у меня возникает ошибка компиляции:

More than one file was found with OS independent path 'kotlin/collections/MapWithDefault.kotlin_metadata'

Проблема в том, что некоторые классы дублируются

Duplicate class kotlin.ArrayIntrinsicsKt found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.BuilderInference found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.Deprecated found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.DeprecationLevel found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.DslMarker found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.ExceptionsKt found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.ExceptionsKt__ExceptionsKt found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.Experimental found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
Duplicate class kotlin.Experimental$Level found in modules com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar (com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar) and kotlin-stdlib-1.3.50.jar (org.jetbrains.kotlin:kotlin-stdlib:1.3.50)
...

Мой вопрос, как я могу исключить некоторыеклассы из файла FAT JAR. Я попытался:

implementation files('libs/com.fiskaly.kassensichv.client-android-0.0.1-alpha-all.jar'){
        exclude group: 'kotlin'
    }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...