Skip to content

Commit

Permalink
[dev-menu] Fix crash when using hermes on android react-native 0.67
Browse files Browse the repository at this point in the history
  • Loading branch information
Kudo committed Jan 28, 2022
1 parent 3213977 commit 656f565
Showing 1 changed file with 13 additions and 0 deletions.
Expand Up @@ -3,11 +3,16 @@ package expo.modules.devmenu
import android.app.Application
import android.content.Context
import android.util.Log
import com.facebook.hermes.reactexecutor.HermesExecutorFactory
import com.facebook.react.ReactInstanceManager
import com.facebook.react.ReactNativeHost
import com.facebook.react.bridge.JSIModulePackage
import com.facebook.react.bridge.JavaScriptExecutorFactory
import com.facebook.react.devsupport.DevServerHelper
import com.facebook.react.jscexecutor.JSCExecutorFactory
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers
import com.facebook.react.shell.MainReactPackage
import com.facebook.soloader.SoLoader
import expo.modules.devmenu.react.DevMenuReactInternalSettings
import java.io.BufferedReader
import java.io.FileNotFoundException
Expand Down Expand Up @@ -37,6 +42,14 @@ class DevMenuHost(application: Application) : ReactNativeHost(application) {

fun getContext(): Context = super.getApplication()

override fun getJavaScriptExecutorFactory(): JavaScriptExecutorFactory? {
SoLoader.init(application.applicationContext, /* native exopackage */ false)
if (SoLoader.getLibraryPath("libjsc.so") != null) {
return JSCExecutorFactory(application.packageName, AndroidInfoHelpers.getFriendlyDeviceName())
}
return HermesExecutorFactory()
}

override fun createReactInstanceManager(): ReactInstanceManager {
val reactInstanceManager = super.createReactInstanceManager()
if (useDeveloperSupport) {
Expand Down

0 comments on commit 656f565

Please sign in to comment.