Code Monkey home page Code Monkey logo

androidbaseframemvvm's Issues

ARouter初始化失败的问题

    override fun initByFrontDesk(): InitDepend {
        val worker = mutableListOf<() -> String>()
        val main = mutableListOf<() -> String>()
        // 以下只需要在主进程当中初始化 按需要调整
        if (ProcessUtils.isMainProcess(BaseApplication.context)) {
            worker.add { initMMKV() }
            worker.add { initARouter() }  //放到这里可能会初始化失败
        }
        worker.add { initTencentBugly() }
        return InitDepend(main, worker)
    }

Dispatchers.IO异常

你好,我刚才在运行代码时,ViewModel中的请求方法里面viewModelScope.launch(Dispatchers.IO)会导致异常java.lang.IllegalStateException: Cannot invoke setValue on a background thread。
原因是catch中的isLoading.value = false不能使用setValue。
如果换成viewModelScope.launch(Dispatchers.Main)就没有问题了,请问是什么原因呢?

使用模块运行模式时依赖HiltAndroidApp

使用app运行时因为有AppApplication的HiltAndroidApp注解可以运行没有问题。
但,isAppMode改为true,运行模块时比如module_home,就会报Hilt异常:没有HiltAndroidApp声明!

收集建议的 issue

如题这是一个收集建议的 issue,楼主平时工作比较忙,虽有有不断的去优化框架的内容,但是一个人的能力终归是优先的,如果 xdm 有好的建议、优化、更好的实现方式、补充功能等想法,可以通过此 issue 发表一下,我会经常看大家的提议去优化框架的内容。

demo翻译闪退

java.lang.IllegalStateException: Cannot invoke setValue on a background thread

文件下载

请问老哥有没有适用于这个框架的,文件下载的工具类?

java.lang.NullPointerException: null cannot be cast to non-null type androidx.fragment.app.Fragment

我模仿着添加了一个组件,命名为:moudle_group。并添加了对应的布局。。。。

val fragments: List<Fragment> = listOf( ARouter.getInstance() .build(RouteUrl.Home.HomeFragment) .navigation() as Fragment, ARouter.getInstance() .build(RouteUrl.SubscribeAccount.SubscribeAccountFragment) .navigation() as Fragment, ARouter.getInstance() .build(RouteUrl.Group.GroupFragment) .navigation() as Fragment, ARouter.getInstance() .build(RouteUrl.Me.MeFragment) .navigation() as Fragment )

ARouter.getInstance()
.build(RouteUrl.Group.GroupFragment)
.navigation() as Fragment,

java.lang.NullPointerException: null cannot be cast to non-null type androidx.fragment.app.Fragment
上面这个位置竟然提示为空呢。程序直接闪退。去掉就没有问题。

` object Group {

    /**
     * 群组
     */
    const val GroupFragment = "/module_group/GroupFragment"
}`

=====================================================
GroupFragment.tk文件

`@AndroidEntryPoint
@route(path = RouteUrl.Group.GroupFragment)
class GroupFragment : BaseFragment<GroupFragmentGroupBinding,EmptyViewModel>() {

override val mViewModel: EmptyViewModel by viewModels()

override fun GroupFragmentGroupBinding.initView() {
}

override fun initObserve() {
}

override fun initRequestData() {
}

}`

你好,有个疑问

看到你的项目,感觉写的很棒,从中有个疑问就是,你的BaseViewModel类一直没有被用到,下载你的demo看了也没有用到,所以想问下,用BaseViewmodel注意什么,有参考的demo吗

如果返回结果包含泛型

如题!
我的返回结果类似于{"code":"200", "msg":"xxx","data": T}这种格式,T是泛型,现在使用gson的话,会出现泛型擦除,T会被解析成LinkedTreeMap,报错java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to xxx.
请问大佬有没有什么比较好的解决办法?

Hilt非App模式(单模块)启动时的使用问题

最新增加的Hilt依赖注入,作者是在主模块(app模块)的AppApplication上添加@HiltAndroidApp,这样的话子模块(例如module_home)在作为单独app启动时就没有Application作为入口,就会报错,官方说的是Hilt不能只在某一个子模块中启动,例如A依赖B,在A中启动Hilt,可以找到B中的依赖注入内容,如果在B中启动Hilt,则找不到A中的依赖内容,所以我是在每个子模块中添加了单独的Application,继承自BaseApplication,作为Hilt的入口,例如

@HiltAndroidApp
class ModuleHomeApplication : BaseApplication() 

再在子模块作为app启动时的AndroidManifest中指定启动的Application,建议作者考虑一下相关内容,谢谢

ViewBinding初始化失败

Android 13
在Android Studio的模拟器上运行APP,正常的页面也会随机出现ViewBinding初始化失败,有时候正常运行,有时候出现异常。
报错内容:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxx/com.xxx.xxx.main.mvvm.view.MainPageAct}: java.lang.RuntimeException: ViewBinding初始化失败
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3645)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
定位到基类,发现是这一段代码有问题,
fun reflexViewBinding(aClass: Class<*>, from: LayoutInflater?): V {
try {
val actualTypeArguments =
(Objects.requireNonNull(aClass.genericSuperclass) as ParameterizedType).actualTypeArguments
for (i in actualTypeArguments.indices) {
val tClass: Class
try {
tClass = actualTypeArguments[i] as Class
} catch (e: Exception) {
continue
}
if (ViewBinding::class.java.isAssignableFrom(tClass)) {
val inflate = tClass.getMethod("inflate", LayoutInflater::class.java)
return inflate.invoke(null, from) as V
}
}
return reflexViewBinding(aClass.superclass, from)
} catch (e: NoSuchMethodException) {
e.printStackTrace()
} catch (e: IllegalAccessException) {
e.printStackTrace()
} catch (e: InvocationTargetException) {
e.printStackTrace()
}
throw RuntimeException("ViewBinding初始化失败")
}
,也就是运行到这个方法时候,不知道为啥,直接throw RuntimeException("ViewBinding初始化失败")了。

求大佬指点一下。

buildSrc

这个包文件夹是怎么建出来的

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.