如何使用React Native CLI创建基于Java而非Kotlin的项目
用React Native CLI创建Java版Android入口文件的方案
一、创建新项目时直接生成Java文件
使用React Native CLI的--android-language参数指定Android端语言为Java,执行以下命令:
npx react-native init YourProjectName --android-language java
执行后生成的项目中,Android目录下的MainActivity和MainApplication都会是Java文件,无需额外修改。
二、将已有的Kotlin项目转为Java项目
如果已经创建了默认Kotlin的RN项目,可按以下步骤替换为Java实现:
删除Kotlin文件
进入android/app/src/main/java/com/[你的项目包名]/目录,删除MainActivity.kt和MainApplication.kt文件。创建对应的Java文件
在同一目录下创建MainActivity.java和MainApplication.java,代码示例如下:MainActivity.java
package com.YourProjectName; 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 "YourProjectName"; } @Override protected ReactActivityDelegate createReactActivityDelegate() { return new DefaultReactActivityDelegate( this, getMainComponentName(), DefaultNewArchitectureEntryPoint.getFabricEnabled()); } }MainApplication.java
package com.YourProjectName; 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(); } } }注意替换代码中的
YourProjectName为你的实际项目名称。移除Kotlin相关配置
打开android/app/build.gradle文件:- 删除顶部的
apply plugin: 'kotlin-android' - 删除
dependencies块中的implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
- 删除顶部的
同步并运行项目
打开Android Studio,同步Gradle配置,之后即可正常运行项目。
内容的提问来源于stack exchange,提问作者João
相关产品推荐
相关产品推荐

