Android Studio添加代码后出现Reinstall and restart app错误求助
解决Android Studio中"Added variable(s) does not support value initialization"错误
错误信息
Changes were not applied. Added variable(s) does not support value initialization: Adding static primitive com.kadirmetin.myapplication.LiveLiterals$MainActivityKt.Int$val-sayac$fun-onCreate$class-MainActivity not known to be compile time constant Reinstall and restart app Failed to launch an application on all devices
问题代码
var kullaniciIslemGunu = 5 // Pazartesi 1. gün var kullaniciIslemSaati = 18 // 24H when (kullaniciIslemGunu) { in 1..5 -> { when (kullaniciIslemSaati) { in 9..17 -> { println("İşleminiz yapılmıştır.") } in 0..8 -> { println("İşleminiz gün içinde saat 9:00'da gerçekleştirilecektir.") } in 18..24 -> { when (kullaniciIslemGunu) { 5 -> println("İşleminiz 3 gün sonra saat 9:00'da gerçekleştirilecektir.") else -> println("İşleminiz yarın saat 9:00'da gerçekleştirilecektir.") } } } } 6 -> { println("İşleminiz 2 gün sonra saat 9:00'da gerçekleştirilecektir.") } 7 -> { println("İşleminiz 1 gün sonra saat 9:00'da gerçekleştirilecektir.") } else -> println("Geçerli gün giriniz.") }
原因分析
这个错误来自Android Studio的Apply Changes热更新功能,它对新增变量有严格限制:如果新增的是静态基本类型变量,必须是编译时常量(编译阶段就能确定值的常量),否则无法完成热更新,只能重新安装应用。
解决方法
- 直接重新安装应用:按照提示点击"Reinstall and restart app",这是最快解决当前问题的方式,修改后的代码会正常部署到设备上。
- 关闭Apply Changes功能:如果不想频繁遇到这类问题,可以关闭热更新:
- 打开Android Studio设置(
File > Settings) - 搜索"Apply Changes"
- 取消勾选"Enable Apply Changes"选项,之后每次代码修改都会触发完整编译安装,避免热更新限制。
- 打开Android Studio设置(
- 将变量改为编译时常量(可选):如果要让变量支持热更新,可将变量声明为编译时常量。比如在顶层或object中使用
const val:
注意:const val kullaniciIslemGunu = 5 const val kullaniciIslemSaati = 18const只能用于顶层、object或companion object中的变量,函数内的var无法用const修饰,这种情况还是需要重新安装。
内容的提问来源于stack exchange,提问作者Skyami
相关产品推荐
相关产品推荐

