ViewModel Init失败在版本APK中,因为找不到构造函数
我正在使用JetPack中的ViewModel组成并构建类似这些代码的工厂
import android.content.Context
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
internal class MyStateBuilder(val args: Map<String, Any?>?, val context: Context) :
ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
try {
Log.d("ppx",modelClass.constructors.size.toString())
modelClass.constructors.forEach {
Log.d("ppx",it.toGenericString())
}
modelClass.getConstructor(Map::class.java, Context::class.java)
return modelClass.getConstructor(Map::class.java, Context::class.java)
.newInstance(args, context)
}catch (e:Exception){
Log.e("ppx","start")
e.printStackTrace()
throw IllegalArgumentException()
}
}
}
在Debug Compile模式下工作正常,但是当我获得释放compile时,提供的类的构造函数突然乘坐0,而ViewModel无法初始化,是否有人知道编译变速器发生了什么?
I am using viewmodel in jetpack compose and build a factory like
import android.content.Context
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
internal class MyStateBuilder(val args: Map<String, Any?>?, val context: Context) :
ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
try {
Log.d("ppx",modelClass.constructors.size.toString())
modelClass.constructors.forEach {
Log.d("ppx",it.toGenericString())
}
modelClass.getConstructor(Map::class.java, Context::class.java)
return modelClass.getConstructor(Map::class.java, Context::class.java)
.newInstance(args, context)
}catch (e:Exception){
Log.e("ppx","start")
e.printStackTrace()
throw IllegalArgumentException()
}
}
}
these codes works fine at debug compile mode, but when I goto release compile, constructor of provided class suddenly go 0 and viewModel cannot be initialized, does anybody know what happened at compile transmission?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论