Intereting Posts
Как я могу интерпретировать эту трассировку стека Android? Показывать изображение пользовательского приложения в диспетчере задач на ICS или JB Android MediaPlayer не работает на Galaxy S6 с Android 5.1.1 Количество ссылок метода в файле .dex не может превышать 64k API 17 Android-образец Bluetooth-кода для отправки простой строки через bluetooth Как вы можете получить номер версии манифеста из XML-переменных приложения (Layout)? Android – Canvas drawLine внутри ImageView FindViewById () возвращает значение null для настраиваемого компонента в макете XML, а не для других компонентов Как установить белый цвет в google + войти в систему? Использование сервисов игр Google Play в эмуляторе Ошибка Retofit2 java.io.EOFException: Конец ввода в строке 1 столбец 1 Как получить выбранный элемент диалогового окна Alert Dialog? Шифрование эллиптической кривой Bouncycastle на Android Как понять структуру каталогов корневого дерева android? Увеличьте значение символа на единицу

ClassNotFoundException в пользовательском вкусе с использованием kotlin

Я определил свой собственный вкус и установил sourceSet:

sourceSets { main.java.srcDirs += 'src/main/kotlin' // WORKS myflavor.java.srcDirs += 'src/myflavor/kotlin' // DOESN'T WORK } 

Вот моя структура проекта:

Введите описание изображения здесь

Но … Я получаю следующую ошибку:

 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{xyz/xyz.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "xyz.MainActivity" on path: DexPathList[[zip file "/data/app/xyz/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.lang.ClassNotFoundException: Didn't find class "xyz.MainActivity" on path: DexPathList[[zip file "/data/app/xyz/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.Instrumentation.newActivity(Instrumentation.java:1065) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)        at android.app.ActivityThread.access$800(ActivityThread.java:144)        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)        at android.os.Handler.dispatchMessage(Handler.java:102)        at android.os.Looper.loop(Looper.java:135)        at android.app.ActivityThread.main(ActivityThread.java:5221)        at java.lang.reflect.Method.invoke(Native Method)        at java.lang.reflect.Method.invoke(Method.java:372)        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Suppressed: java.lang.ClassNotFoundException: xyz.MainActivity at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 13 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

Однако, используя основные функции sourceSet, я буду благодарен за вашу помощь.

Это ошибка в плагине kotlin-gradle для Android, и она будет исправлена ​​в 0.9.488 или выше. Спасибо за отчет!

В моем случае я забыл apply plugin: 'kotlin-android' в файле gradle. Хотя мой проект был успешно создан, он запускает java.lang.ClassNotFoundException во время выполнения. Я использую Kotlin 1.1.1

Когда я преобразовал источник в kotlin, я тоже получил ошибку. Мое исправление меняло sourceSets в градиенте.

До :

 sourceSets { main.java.srcDirs += 'src/main/kotlin' } 

Теперь :

 sourceSets { main.java.srcDirs += 'src/main/java' } 

Попробуйте добавить оба файла main.java.srcDirs, потому что вы хотите, чтобы они оба скомпилировали да?

 sourceSets { main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/myflavor/kotlin' } 

Я могу подтвердить, что, по крайней мере, с плагином Kotlin версии 1.1.1 и 1.1.2 исправлена ​​ошибка, и вы можете использовать папки kotlin ( рекомендуется вместо папок java ) с различными вариантами:

 sourceSets { androidTest { java.srcDir file('src/androidTest') } test.java.srcDirs += 'src/test/kotlin' main.java.srcDirs += 'src/main/kotlin' flavor1.java.srcDirs += 'src/flavor1/kotlin' flavor2.java.srcDirs += 'src/flavor2/kotlin' } 

Я была такая же проблема. В моем случае я создавал библиотеку и тестовое приложение для доступа к библиотеке.

Когда я преобразовал проект в kotlin, он добавил соответствующие зависимости kotlin к файлу gradle для библиотеки, но не для основного приложения.

Убедитесь, что во всех ваших соответствующих файлах градации находятся следующие строки:

 apply plugin: "kotlin-android" dependencies { ... implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" ... }