【问题标题】:I'm getting NoClassFoundError in android我在 android 中收到 NoClassFoundError
【发布时间】:2020-05-09 09:30:46
【问题描述】:

我从 Codecanyon 购买了一个应用程序,当我用我的设备启动该应用程序时,我收到很多错误...(卖家对问题一无所知)

我该如何解决?

编写 ResolveColor 的代码。

object ATHUtil {

fun isWindowBackgroundDark(context: Context): Boolean {
    return !ColorUtil.isColorLight(resolveColor(context, android.R.attr.windowBackground))
}

@JvmOverloads
fun resolveColor(context: Context, @AttrRes attr: Int, fallback: Int = 0): Int {
    val a = context.theme.obtainStyledAttributes(intArrayOf(attr))
    try {
        return a.getColor(0, fallback)
    } finally {
        a.recycle()
    }
}

}

java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/KotlinPackage;
    at code.reno.music.appthemehelper.util.ATHUtil.resolveColor(ATHUtil.kt:17)
    at code.reno.music.appthemehelper.ThemeStore$Companion.accentColor(ThemeStore.kt:214)
    at code.reno.music.player.appshortcuts.AppShortcutIconGenerator.generateUserThemedIcon(AppShortcutIconGenerator.kt:58)
    at code.reno.music.player.appshortcuts.AppShortcutIconGenerator.generateThemedIcon(AppShortcutIconGenerator.kt:35)
    at code.reno.music.player.appshortcuts.shortcuttype.SearchShortCutType.getShortcutInfo$app_fontDebug(SearchShortCutType.kt:38)
    at code.reno.music.player.appshortcuts.DynamicShortcutManager.getDefaultShortcuts(DynamicShortcutManager.kt:37)
    at code.reno.music.player.appshortcuts.DynamicShortcutManager.initDynamicShortcuts(DynamicShortcutManager.kt:46)
    at code.reno.music.player.App.onCreate(App.kt:46)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1155)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6006)
    at android.app.ActivityThread.access$1200(ActivityThread.java:201)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1679)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:207)
    at android.app.ActivityThread.main(ActivityThread.java:6867)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.KotlinPackage" on path: DexPathList[[zip file "/data/app/code.reno.music.player.debug-eucHrO85H1-7NwqtiLtrqA==/base.apk"],nativeLibraryDirectories=[/data/app/code.reno.music.player.debug-eucHrO85H1-7NwqtiLtrqA==/lib/arm64, /system/lib64, /system/vendor/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:171)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)

【问题讨论】:

  • 您能提供一个最小的可重现示例吗?请阅读:How to create a Minimal, Reproducible Example。从错误看来问题是从resolveColor开始的,请在AuthUtil类中提供resolveColor的定义。
  • 我添加了代码:)

标签: android kotlin


【解决方案1】:

我相信您在 intArrayOf 方法上遇到了错误。

Windows 10 土耳其语 设备上的构建代码似乎存在问题。可能是 utf-8 问题。代码无法为其中的 İı 生成某些函数。

土耳其语开发设备的 Kotlin 代码生成过程存在一个错误(可能还有其他一些语言)。

现在您可以将操作系统更改为 Windows 10 Pro English 以解决错误

有相关回答here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2015-03-22
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多