From cd771fa4b5d2762478099afdb445578de0fbe2df Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Fri, 14 Mar 2025 05:51:17 +0000
Subject: [PATCH] 代码补充
---
libmvi/src/main/java/com/runt/open/mvi/base/model/ImpViewModel.kt | 8 ++++++++
libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt | 10 +++++++++-
2 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/libmvi/src/main/java/com/runt/open/mvi/base/model/ImpViewModel.kt b/libmvi/src/main/java/com/runt/open/mvi/base/model/ImpViewModel.kt
new file mode 100644
index 0000000..9a9d1bb
--- /dev/null
+++ b/libmvi/src/main/java/com/runt/open/mvi/base/model/ImpViewModel.kt
@@ -0,0 +1,8 @@
+package com.runt.open.mvi.base.model
+
+/**
+ * @author Runt(qingingrunt2010@qq.com)
+ * @purpose
+ * @date 9/6/24
+ */
+class ImpViewModel :BaseViewModel() {}
\ No newline at end of file
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