From 89e35a1933ba40513a96572b27291c0aa65c918c Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Sat, 11 Oct 2025 10:21:42 +0000
Subject: [PATCH] 框架优化
---
libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt b/libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt
index a929f74..f43bccf 100644
--- a/libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt
+++ b/libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt
@@ -1,7 +1,9 @@
package com.runt.open.mvi.base.model
+import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
+import java.lang.reflect.InvocationTargetException
/**
* @author Runt(qingingrunt2010 @ qq.com)
@@ -13,11 +15,17 @@
override fun <T : ViewModel> create(modelClass : Class<T>) : T {
return try {
- modelClass.newInstance()
+ modelClass.getDeclaredConstructor().newInstance()
} catch (e : InstantiationException) {
throw RuntimeException("(创建实例失败,没有对应的构造方法,请重写一个实现类)Cannot create an instance of $modelClass" , e)
} catch (e : IllegalAccessException) {
throw RuntimeException("Cannot create an instance of $modelClass" , e)
+ }catch (e : UnsatisfiedLinkError) {
+ throw RuntimeException("Cannot create an instance of $modelClass" , e)
+ }catch (e : InvocationTargetException){
+ Log.e("ViewModelFactory" , "create: ${e.cause}" , );
+ e.cause?.printStackTrace()
+ throw RuntimeException("Cannot create an instance of $modelClass" , e)
}
}
--
Gitblit v1.9.1