如何将React Native默认生成文件从Kotlin改为Java?
如何让React Native默认生成Java格式的原生文件
方法一:创建新项目时直接指定Java模板
如果还未创建项目,初始化时可使用官方维护的Java模板,生成的Android原生文件会默认采用Java格式:
npx react-native init YourAppName --template react-native-template-java
若需要结合TypeScript开发,也可以使用对应的TypeScript+Java模板:
npx react-native init YourAppName --template react-native-template-typescript-java
方法二:将已有的Kotlin项目转为Java格式
如果已经创建了默认的Kotlin项目,可通过以下步骤手动转换为Java格式:
- 删除Android模块下的Kotlin文件
找到android/app/src/main/java/[你的包路径](比如com/yourappname),删除其中的MainActivity.kt和MainApplication.kt文件。 - 创建对应的Java文件
在同一目录下新建MainActivity.java和MainApplication.java,内容示例如下(注意替换代码中的包名和项目名称):- MainActivity.java
package com.yourappname; import com.facebook.react.ReactActivity; import com.facebook.react.ReactActivityDelegate; import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; import com.facebook.react.defaults.DefaultReactActivityDelegate; public class MainActivity extends ReactActivity { @Override protected String getMainComponentName() { return "YourAppName"; } @Override protected ReactActivityDelegate createReactActivityDelegate() { return new DefaultReactActivityDelegate( this, getMainComponentName(), DefaultNewArchitectureEntryPoint.getFabricEnabled()); } } - MainApplication.java
package com.yourappname; import android.app.Application; import com.facebook.react.PackageList; import com.facebook.react.ReactApplication; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; import com.facebook.react.defaults.DefaultReactNativeHost; import com.facebook.soloader.SoLoader; import java.util.List; public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new DefaultReactNativeHost(this) { @Override public boolean getUseDeveloperSupport() { return BuildConfig.DEBUG; } @Override protected List<ReactPackage> getPackages() { List<ReactPackage> packages = new PackageList(this).getPackages(); return packages; } @Override protected String getJSMainModuleName() { return "index"; } @Override protected boolean isNewArchEnabled() { return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; } @Override protected Boolean isHermesEnabled() { return BuildConfig.IS_HERMES_ENABLED; } }; @Override public ReactNativeHost getReactNativeHost() { return mReactNativeHost; } @Override public void onCreate() { super.onCreate(); SoLoader.init(this, false); if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { DefaultNewArchitectureEntryPoint.load(); } } }
- MainActivity.java
- 移除Kotlin相关配置
打开android/app/build.gradle,删除以下内容:- 顶部的
apply plugin: 'kotlin-android' - dependencies中的
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
再打开android/gradle.properties,删除kotlin_version=xxx这一行配置。
- 顶部的
- 同步Gradle并测试
在Android Studio中同步Gradle项目,或在终端执行cd android && ./gradlew clean,之后即可正常运行项目。
内容的提问来源于stack exchange,提问作者Cyril Ang-numbaala
相关产品推荐
相关产品推荐

