app
-src
--main
---java
----com.example.myapplication
-----MainActivity.kt
--sample2
---java
----com.example.myapp.legacy
---- -LegacyFile.java
LegacyFile.java
Код: Выделить всё
package com.example.myapp.legacy;
public class LegacyFile {
}
Код: Выделить всё
override fun onCreate(savedInstanceState: Bundle?) {
....
val legacyFile = LegacyFile()
}
Код: Выделить всё
android {
.....
sourceSets.getByName("main").apply {
kotlin.setSrcDirs(listOf("src/sample2/java"))
}
}
FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 2436java.lang.NoClassDefFoundError: Не удалось разрешить:
Lcom/example/myapp/legacy/LegacyFile;
at
com.example.myapplication.MainActivity.onCreate(MainActivity.kt: 25)
..... Вызвано: java.lang.ClassNotFoundException: не найден класс
"com.example.myapp.legacy.LegacyFile" по пути: DexPathList[[dex file
"/data/data/com.example.myapplication/code_cache/.overlay/base.apk/classes5.dex",
zip-файл
"/data/app/~~5E7UPyWAZdlsGbzLHVOIJw==/ com.example.myapplication-kmtHz5UXr_gzaXYqPtpKyA==/base.apk"],nativeLibraryDirectories=[/data/app/~~5E7UPyWAZdlsGbzLHVOIJw==/com.example.myapplication-kmtHz5UXr_gzaXYqPtpKyA==/lib/x86_64,
/system /lib64, /system_ext/lib64]]
Когда я проверяю APK-файл, я вижу LegacyFile -

Может кто-нибудь объяснить, что я здесь делаю не так?Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... sourcesets
Мобильная версия