Kotlin随机颜色生成器无法运行,求助解决Stub!异常
问题原因与解决方案
错误原因
你使用的android.graphics.Color是Android SDK专属类,这类类在非Android运行环境(比如普通Kotlin/JVM项目的main函数)中仅提供Stub空实现——方法内部直接抛出RuntimeException: Stub!,因为它们只能在Android系统/模拟器的应用上下文里执行,无法在本地JVM独立运行。
解决方案
场景1:普通Kotlin/JVM项目生成随机颜色
无需依赖Android类,直接用纯Kotlin实现颜色生成逻辑:
import kotlin.random.Random fun main() { val rnd = Random.Default // 生成RGB三色分量(范围0-255) val red = rnd.nextInt(256) val green = rnd.nextInt(256) val blue = rnd.nextInt(256) // 生成标准十六进制颜色字符串(带#前缀) val hexColor = String.format("#%02X%02X%02X", red, green, blue) println("随机十六进制颜色:$hexColor") // 如果需要和Android Color.argb返回的Int格式一致(ARGB,alpha=255) val argbColorInt = (255 shl 24) or (red shl 16) or (green shl 8) or blue println("ARGB格式Int值:$argbColorInt") }
场景2:Android项目中使用原逻辑
如果是在Android应用里需要生成随机颜色,不要用main函数直接运行,而是将代码放到Android组件(如Activity、Fragment、ViewModel)中执行,或者使用Android Instrumented Test环境运行,此时android.graphics.Color就能正常工作。
内容的提问来源于stack exchange,提问作者Alex Jordan
相关产品推荐
相关产品推荐

