Код: Выделить всё
import android.app.Activity
import android.os.Bundle
import com.facebook.react.ReactHost
import com.facebook.react.ReactRootView
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
class MiniAppActivity : Activity() {
val TAG = "MiniAppActivity"
private lateinit var reactRootView: ReactRootView
private lateinit var reactHost: ReactHost
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val miniHost = MiniReactNativeHost(application)
reactHost = getDefaultReactHost(applicationContext, miniHost)
reactRootView = ReactRootView(this)
reactRootView.startReactApplication(
miniHost.reactInstanceManager,
"MiniApp", // name from AppRegistry.registerComponent()
null
)
setContentView(reactRootView)
}
override fun onPause() {
super.onPause()
reactHost.onHostPause(this)
}
override fun onResume() {
super.onResume()
reactHost.onHostResume(this)
}
override fun onDestroy() {
super.onDestroy()
reactHost.onHostDestroy(this)
}
}
Код: Выделить всё
import android.app.Application
import com.facebook.react.PackageList
import com.facebook.react.ReactPackage
import com.facebook.react.defaults.DefaultReactNativeHost
import com.myapp.config.ConfigReaderPackage
import com.myapp.intent_launcher.IntentLauncherPackage
class MiniReactNativeHost(app: Application) : DefaultReactNativeHost(app) {
override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
override fun getJSMainModuleName(): String = "index.mini" // if dev mode
override fun getBundleAssetName(): String = "index.mini.bundle" // mini bundle name
override fun getPackages(): List =
PackageList(this).packages.apply {
add(ConfigReaderPackage())
add(IntentLauncherPackage())
}
override fun getJSBundleFile(): String {
return "assets://index.mini.bundle"
}
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
}
Код: Выделить всё
FATAL EXCEPTION: mqt_native_modules
Process: com.myapp.local, PID: 15645
java.lang.RuntimeException: Could not invoke UIManager.createView
at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:381)
at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:146)
at com.facebook.jni.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.kt:20)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.startNewBackgroundThread$lambda$1(MessageQueueThreadImpl.kt:175)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.$r8$lambda$ldnZnqelhYFctGaUKkOKYj5rxo4(Unknown Source:0)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:146)
at com.facebook.jni.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.kt:20)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.startNewBackgroundThread$lambda$1(MessageQueueThreadImpl.kt:175)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.$r8$lambda$ldnZnqelhYFctGaUKkOKYj5rxo4(Unknown Source:0)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.AssertionError: Root node with tag 31 doesn't exist
at com.facebook.infer.annotation.Assertions.assertNotNull(Assertions.java:19)
at com.facebook.react.uimanager.UIImplementation.createView(UIImplementation.java:251)
at com.facebook.react.uimanager.UIManagerModule.createView(UIManagerModule.java:438)
at java.lang.reflect.Method.invoke(Native Method)
at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:146)
at com.facebook.jni.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.kt:20)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.startNewBackgroundThread$lambda$1(MessageQueueThreadImpl.kt:175)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.$r8$lambda$ldnZnqelhYFctGaUKkOKYj5rxo4(Unknown Source:0)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:1012)
Код: Выделить всё
import com.facebook.react.ReactActivity
import com.facebook.react.ReactHost
import com.facebook.react.defaults.DefaultReactHost
class NewMiniAppActivity : ReactActivity() {
private val TAG = "MiniAppActivity"
override fun getMainComponentName(): String = "MiniApp" // must match AppRegistry.registerComponent()
override fun getReactHost(): ReactHost {
val app = application as MainApplication
return DefaultReactHost.getDefaultReactHost(applicationContext, app.miniReactNativeHost)
}
}
Код: Выделить всё
FATAL EXCEPTION: mqt_v_native
Process: com.myapp.local, PID: 17008
com.facebook.react.common.JavascriptException: Invariant Violation: "MiniApp" has not been registered. This can happen if:
* Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.
* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called., js engine: hermes, stack:
invariant@1:49453
runApplication@1:336716
at com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.kt:52)
at com.facebook.jni.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.kt:20)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.startNewBackgroundThread$lambda$1(MessageQueueThreadImpl.kt:175)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.$r8$lambda$ldnZnqelhYFctGaUKkOKYj5rxo4(Unknown Source:0)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:1012)
Я проверяю класс ReactActivity и вижу следующее:
Код: Выделить всё
public abstract class ReactActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler, PermissionAwareActivity {
private final ReactActivityDelegate mDelegate = this.createReactActivityDelegate();
protected ReactActivity() {
}
@Nullable
protected String getMainComponentName() {
return null;
}
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, this.getMainComponentName());
}
Кто-нибудь пробовал делать такое раньше? Поделитесь, если что-то знаете! Спасибо!
PS: Похоже, в новой версии требуется ReactActivity. Я столкнулся с такой ошибкой при использовании Activity или AppCompatActivity, но забыл записать трассировку стека.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -js-bundle
Мобильная версия