解決JetpackCompose 编译通过但是运行报错的问题

作者:海塔灯

问题描述

报错信息

java.lang.NoSuchMethodError: No static method setContent$default(Landroidx/activity
/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions
/Function0;ILjava/lang/Object;)V in class Landroidx/activity/compose/ComponentActivityKt; 
or its super classes (declaration of 'androidx.activity.compose.ComponentActivityKt'
 appears in /data/app/com.otter.player-Lx0SJMeWfCnOQZyMcc4S4w==/base.apk)at \
 com.otter.player.MainActivity.onCreate(MainActivity.kt:18)

出现的这个问题比较恶心,编译啥的都能通过,也能安装成功,但是就是运行无法成功,启动就闪退。

问题解决

在网上有人说在app下的build.gradle中的android{}下添加如下的代码

    buildFeatures {
        compose = true
    }

这样又会引起一个错误,版本兼容的错误:如下所示

报错的信息大致为:

 This version (1.0.5) of the Compose Compiler requires Kotlin version 1.5.31 but you appear to
  be using Kotlin version 1.7.10 which is not known to be compatible.  Please fix your 
  configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn 
  you!).

要完全解决这个问题,还需要在android{}添加如下代码:

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0" 
    }

然后就可以正常的运行了。由于Android由Java向Kotlin过渡,所以存在很多的版本兼容的问题,这些问题让开发者比较头疼,所以遇到问题一定要多上网查查。

Android 学习笔录

Android 性能优化篇:https://qr18.cn/FVlo89
Android 车载篇:https://qr18.cn/F05ZCM
Android 逆向安全学习笔记:https://qr18.cn/CQ5TcL
Android Framework底层原理篇:https://qr18.cn/AQpN4J
Android 音视频篇:https://qr18.cn/Ei3VPD
Jetpack全家桶篇(内含Compose):https://qr18.cn/A0gajp
Kotlin 篇:https://qr18.cn/CdjtAF
Gradle 篇:https://qr18.cn/DzrmMB
OkHttp 源码解析笔记:https://qr18.cn/Cw0pBD
Flutter 篇:https://qr18.cn/DIvKma
Android 八大知识体:https://qr18.cn/CyxarU
Android 核心笔记:https://qr21.cn/CaZQLo
Android 往年面试题锦:https://qr18.cn/CKV8OZ
2023年最新Android 面试题集:https://qr18.cn/CgxrRy
Android 车载开发岗位面试习题:https://qr18.cn/FTlyCJ
音视频面试题锦:https://qr18.cn/AcV6Ap

猜你喜欢

转载自blog.csdn.net/weixin_61845324/article/details/131872773