Moxy Fatal Exception - Исключение из метода начальной загрузки сайта № 0

Пример кода от Moxy не работает https://github.com/moxy-community/Moxy Исходный код разделен на разные файлы, но теперь представлен для менее сложного просмотра.

Пустое приложение (без чего-либо с 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) 

1 ответ

Решение

Включите функции Java8 в вашем build.gradle файл:

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"
   }
}

См. Здесь полную документацию.

Другие вопросы по тегам