如何创建默认使用Java的React Native Android项目?
如何让React Native项目Android端默认使用Java开发
一、创建新项目时直接指定Java语言
React Native从0.70版本开始,Android端默认采用Kotlin、iOS端默认采用Swift作为开发语言。若想创建时直接使用Java,只需在init命令后追加--android-language java参数:
npx react-native init TestApp --android-language java
执行该命令后,生成的Android项目会默认使用Java,无需后续修改配置。
二、将已创建的Kotlin项目转为Java
如果已经用默认方式创建了项目,可按以下步骤切换到Java开发:
- 创建Java版核心文件
在android/app/src/main/java/[你的项目包名]目录下(例如包名为com.testapp,路径则为android/app/src/main/java/com/testapp),创建两个Java文件:
MainActivity.javapackage com.testapp; 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 "TestApp"; } @Override protected ReactActivityDelegate createReactActivityDelegate() { return new DefaultReactActivityDelegate( this, getMainComponentName(), DefaultNewArchitectureEntryPoint.getFabricEnabled() ); } }MainApplication.javapackage com.testapp; 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(); } } }
注意将代码中的com.testapp替换为你实际的项目包名。
- 修改Gradle配置文件
- 打开
android/app/build.gradle:- 删除Kotlin相关依赖,比如
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - 在
android节点的defaultConfig中,确保android:name指向Java版的MainApplication:defaultConfig { applicationId "com.testapp" // 其他配置项... android:name=".MainApplication" }
- 删除Kotlin相关依赖,比如
- 打开
android/build.gradle:- 删除Kotlin插件依赖,比如
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - 删除
ext.kotlin_version = "x.x.x"这一行(如果存在)
- 删除Kotlin插件依赖,比如
- 清理并重新构建项目
执行以下命令清理缓存并重新运行项目:
cd android ./gradlew clean cd .. npx react-native run-android
完成后即可使用Java开发Android端代码。
内容的提问来源于stack exchange,提问作者Mouhcine Oussama
相关产品推荐
相关产品推荐

