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/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