React Native项目中启用Hermes 引擎
在React Native项目中启用Hermes 引擎,你需要按照以下步骤操作:
- 确保你的React Native项目使用的是支持Hermes的版本。
- 在项目的
android/app/build.gradle
文件中添加Hermes引擎依赖:
dependencies {
// 其他依赖...
// 在debug模式下添加Hermes引擎
debugImplementation 'com.facebook.hermes:hermes-engine:0.9.0'
}
- 修改
android/app/src/main/java/<YourAppPackageName>/MainActivity.java
文件,在onCreate
方法中添加Hermes的初始化代码:
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.hermes.reactbridge.HermesJavaScriptEngineFactory;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptExecutorFactory;
import com.facebook.soloader.SoLoader;
// ...
public class MainActivity extends ReactActivity {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置Hermes引擎为JavaScript引擎
SoLoader.init(this, /* native exopackage */ false);
ReactInstanceManager.Builder builder = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModulePath("index.android")
.addPackages(getPackages())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.setJavaScriptExecutorFactory(new HermesExecutorFactory());
// 如果你使用的是React Native 0.60或更高版本,可以使用以下代码替代上面的设置
// if (BuildConfig.DEBUG) {
// builder.addHermesFlags(HermesFlags.ENABLE_DEBUGGING);
// } else {
// builder.setHermesCommand(HermesCommand.hermes);
// }
ReactInstanceManager reactInstanceManager = builder.build();
ReactRootView rootView = new ReactRootView(this);
rootView.startReactApplication(reactInstanceManager, "YourAppName", null);
setContentView(rootView);
}
// ...
}
- 修改
android/app/build.gradle
文件,确保你在debug变体中启用了Hermes引擎:
android {
// ...
buildTypes {
debug {
// 启用Hermes引擎
def enableHermes = project.ext.react.get("enableHermes", false);
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
// 如果你的Hermes路径不同,请相应修改
debugImplementation files(herm
评论已关闭