升级React Native 0.73.0并转Kotlin后,MainApplication无法实例化如何解决?
React Native 0.73.0 迁移Kotlin后 MainApplication ClassNotFoundException 解决方法
检查Kotlin配置完整性
- 项目根目录
build.gradle中,确认已添加Kotlin Gradle插件依赖:buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0" } } - app模块
build.gradle中,确保应用了Kotlin插件:apply plugin: 'com.android.application' apply plugin: 'kotlin-android' - 在app模块
build.gradle的android块内,添加Kotlin源码路径配置:sourceSets { main.java.srcDirs += 'src/main/kotlin' }
- 项目根目录
校验包名与Manifest一致性
- 打开
src/main/kotlin/[你的包路径]/MainApplication.kt,顶部package声明必须与AndroidManifest.xml里的package属性完全匹配 - 确认
AndroidManifest.xml的application标签中,android:name指向正确类,如android:name=".MainApplication"或完整包名
- 打开
清理缓存并重建项目
- 执行Gradle清理:
./gradlew clean(Windows系统用gradlew clean) - 清理React Native缓存:
npx react-native clean - 重新构建并运行:
./gradlew assembleDebug && npx react-native run-android
- 执行Gradle清理:
检查MultiDex配置(若启用)
- 若项目开启MultiDex,确保MainApplication中初始化MultiDex:
override fun attachBaseContext(base: Context) { super.attachBaseContext(base) MultiDex.install(this) } - 确认app模块
build.gradle中已开启MultiDex并添加依赖:android { defaultConfig { multiDexEnabled true } } dependencies { implementation "androidx.multidex:multidex:2.0.1" }
- 若项目开启MultiDex,确保MainApplication中初始化MultiDex:
核对文件路径与类名
- 确认
MainApplication.kt文件位于src/main/kotlin对应的包路径下,无路径错误 - 检查类名拼写,确保Kotlin类定义为
class MainApplication : ReactNativeApplication()(或对应父类),无拼写错误
- 确认
适配RN 0.73版本要求
- 确认app模块
build.gradle中compileSdkVersion和targetSdkVersion设置为33(RN 0.73要求) - 确保Gradle版本(gradle-wrapper.properties中)和Android Gradle Plugin版本适配RN 0.73(推荐Gradle 8.0+、AGP 8.0+)
- 确认app模块
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

