Невозможно скомпилировать зависимости библиотеки сериализации в мой AAR - PullRequest
0 голосов
/ 21 марта 2020

Я импортирую проект kotlin mpp, над которым я работаю iOS, но android Я получаю исключение класса не найден

2020-03-19 17:08:59.905 25271-25387/com.test.testE/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-2
    Process: com.test.test, PID: 25271
    java.lang.NoClassDefFoundError: Failed resolution of: Lkotlinx/serialization/internal/GeneratedSerializer;

Мои зависимости

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib:1.3.61")
    implementation("io.ktor:ktor-client-android:$ktorVersion")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
    implementation("io.ktor:ktor-client-json-jvm:$ktorVersion")
    implementation("io.ktor:ktor-client-serialization-jvm:$ktorVersion")
    implementation("io.ktor:ktor-client-android:$ktorVersion")
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion")
}

Он также работает на моих модульных тестах для android внутри проекта библиотеки. Но когда я импортирую как aar, он не может найти класс. Я не использую Proguard какие-либо идеи, что не так?

debugCompileClasspath - Dependencies for compilation
+--- io.ktor:ktor-client-core:1.2.6@jar
+--- io.ktor:ktor-client-serialization-jvm:1.2.6@jar
+--- io.ktor:ktor-client-json-jvm:1.2.6@jar
+--- io.ktor:ktor-http-cio:1.2.6@jar
+--- io.ktor:ktor-http:1.2.6@jar
+--- io.ktor:ktor-client-android:1.2.6@jar
+--- io.ktor:ktor-client-core-jvm:1.2.6@jar
+--- io.ktor:ktor-http-cio-jvm:1.2.6@jar
+--- io.ktor:ktor-network:1.2.6@jar
+--- io.ktor:ktor-http-jvm:1.2.6@jar
+--- io.ktor:ktor-utils-jvm:1.2.6@jar
+--- org.jetbrains.kotlinx:kotlinx-coroutines-io-jvm:0.1.16@jar
+--- io.ktor:ktor-utils:1.2.6@jar
+--- org.jetbrains.kotlinx:kotlinx-coroutines-io:0.1.16@jar
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3@jar
+--- org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.14.0@jar
+--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3@jar
+--- org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.14.0@jar
+--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.3.2-1.3.60@jar
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3@jar
+--- org.jetbrains.kotlinx:kotlinx-io-jvm:0.1.16@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.60@jar
+--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61@jar
+--- org.jetbrains.kotlinx:kotlinx-io:0.1.16@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61@jar
+--- org.jetbrains.kotlinx:atomicfu-common:0.14.1@jar
+--- org.jetbrains.kotlinx:atomicfu:0.14.1@jar
+--- org.jetbrains:annotations:13.0@jar
+--- org.slf4j:slf4j-api:1.7.26@jar
\--- com.typesafe:config:1.3.1@jar

Окружающая среда

Kotlin version: 1.3.61
Library version: 0.14.0
Kotlin platforms: android,ios
Gradle version: 3.6.0

1 Ответ

0 голосов
/ 31 марта 2020

EDIT: проблема в том, что файлы AAR получают свои зависимости из pom-файла. при импорте файла AAR в нем нет ссылок на нужные библиотеки. Использование maven-publi sh решило мою проблему без необходимости дублирования используемых репозиториев.

У меня была такая же проблема, и я импортировал недостающие зависимости в свой build.gradle своего приложения. Это решило проблему. Я предполагаю, что зависимости не полностью включены в файл AAR. так скажем, это скорее взлом, чем реальное решение. Мне пришлось сделать это для других зависимостей, сейчас я ищу причину этого.

dependencies {
//other dependencies for build.gradle (app)
implementation "io.ktor:ktor-client-android:$ktor_version"
implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
}

Дополнительная информация: https://github.com/ktorio/ktor/issues/1039#issuecomment -517660157

...