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