android - Moxy 致命异常 - 调用站点 #0 引导方法出现异常

标签 android kotlin moxy android-moxy

Moxy 的示例代码不起作用 https://github.com/moxy-community/Moxy 源代码被分成不同的文件,但现在呈现不太复杂的 View

空应用程序(没有任何 MVP,它只有一个空屏幕)可以工作 但是,如果我像示例中那样添加代码,它会因致命异常而崩溃(如下所示)

interface ExplorerView : MvpView {
    @StateStrategyType(AddToEndSingleStrategy::class)
    fun foo()
}

@InjectViewState
class ExplorerPresenter : MvpPresenter<ExplorerView>() {
    fun loadFiles() {}
}

class ExploreActivity : MvpAppCompatActivity(), ExplorerView {
    @InjectPresenter
    internal lateinit var explorerPresenter: ExplorerPresenter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_explorer)
        isPermissionsGranted()
    }

    private fun isPermissionsGranted() {
        explorerPresenter.loadFiles()
    }
}
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.birdyteam.filesexplorer, PID: 19725
    java.lang.BootstrapMethodError: Exception from call site #0 bootstrap method
        at moxy.MvpDelegate.<clinit>(MvpDelegate.java:37)
        at moxy.MvpAppCompatActivity.getMvpDelegate(MvpAppCompatActivity.java:76)
        at moxy.MvpAppCompatActivity.onCreate(MvpAppCompatActivity.java:27)
        at com.birdyteam.filesexplorer.presentation.ui.ExploreActivity.onCreate(ExploreActivity.kt:28)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassCastException: Bootstrap method returned null
        at moxy.MvpDelegate.<clinit>(MvpDelegate.java:37) 
        at moxy.MvpAppCompatActivity.getMvpDelegate(MvpAppCompatActivity.java:76) 
        at moxy.MvpAppCompatActivity.onCreate(MvpAppCompatActivity.java:27) 
        at com.birdyteam.filesexplorer.presentation.ui.ExploreActivity.onCreate(ExploreActivity.kt:28) 
        at android.app.Activity.performCreate(Activity.java:7136) 
        at android.app.Activity.performCreate(Activity.java:7127) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

最佳答案

build.gradle 文件中启用 Java8 功能:

android {
  ...
   // Configure only for each module that uses Java 8
   // language features (either in its source code or
   // through dependencies).
   compileOptions {
     sourceCompatibility JavaVersion.VERSION_1_8
     targetCompatibility JavaVersion.VERSION_1_8
   }
   // For Kotlin projects
   kotlinOptions {
     jvmTarget = "1.8"
   }
}

参见here获取完整文档。

关于android - Moxy 致命异常 - 调用站点 #0 引导方法出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174469/

相关文章:

java - 为什么一个用户会得到 NoSuchMethodError 而成千上万的用户却没有?

kotlin - 列表或数组在Kotlin中始终为空

xml - 如何避免编码时 JAXB、MOXY 实现中的类型删除?

jaxb2 - 使用适配器将类编码到具有 MOXy 或任何其他 JAXB 实现的根元素

android - 操作栏 Sherlock 列表导航文本颜色

android - 为 PeriodicWorkRequest 设置初始延迟的任何方式

android - 在Android上将FloatArray音频缓冲区保存到WAV文件

java - Spring MVC - 使用 @ResponseBody 时设置 JAXB 编码器属性

android - 如何使 View 对点击使用react

java - 正则表达式 ReplaceAll 不起作用