Попытка вызвать виртуальный метод void com.twiliovoicereactnative.JSEventEmitter.setContext(com.facebook.react.bridge.ReAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Попытка вызвать виртуальный метод void com.twiliovoicereactnative.JSEventEmitter.setContext(com.facebook.react.bridge.Re

Сообщение Anonymous »

При попытке интегрировать официальный SDK Twilio voice я выполнил все шаги, как для Android, но после успешной сборки приложения все еще получаю следующую ошибку.
Попытка вызвать виртуальный метод 'void com.twiliovoicereactnative.JSEventEmitter.setContext(com.facebook.react.bridge.ReactApplicationContext) по ссылке на нулевой объект
Официальный URL-адрес пакета https:// github.com/twilio/twilio-voice-react-native/tree/main
Я вставляю ниже MainApplication.kt, MainActivity.kt, MainReactNativeHost.ktMainApplication.KT

Код: Выделить всё

import android.app.Application
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactHost
import com.facebook.react.ReactNativeHost
import org.devio.rn.splashscreen.SplashScreenReactPackage
import com.intercom.reactnative.IntercomModule
import com.facebook.react.ReactPackage
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost
import com.facebook.soloader.SoLoader
import com.twiliovoicereactnative.VoiceApplicationProxy;
import com.facebook.FacebookSdk
import com.facebook.appevents.AppEventsLogger
import android.content.BroadcastReceiver
import android.content.Intent
import android.content.IntentFilter
import android.os.Build
import android.content.Context

class MainApplication : Application(), ReactApplication {

override val reactNativeHost: ReactNativeHost =
object : DefaultReactNativeHost(this) {
override fun getPackages(): List =
PackageList(this).packages.apply {

}

override fun getJSMainModuleName(): String = "index"

override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG

override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
}

override val reactHost: ReactHost
get() = getDefaultReactHost(applicationContext, reactNativeHost)

private val mReactNativeHost = MainReactNativeHost(this)
private val voiceApplicationProxy = VoiceApplicationProxy(mReactNativeHost)

override fun registerReceiver(receiver: BroadcastReceiver?, filter: IntentFilter): Intent? {
return if (Build.VERSION.SDK_INT >= 34 && applicationInfo.targetSdkVersion >= 34) {
super.registerReceiver(receiver, filter, Context.RECEIVER_EXPORTED)
} else {
super.registerReceiver(receiver, filter)
}
}

override fun onCreate() {
super.onCreate()
FacebookSdk.sdkInitialize(applicationContext)
SoLoader.init(this, false)

if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
load()
}
}

override fun onTerminate() {
voiceApplicationProxy.onTerminate()
super.onTerminate()
}

}
MainActivity.KT

Код: Выделить всё

import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
import com.facebook.react.defaults.DefaultReactActivityDelegate
import com.facebook.react.ReactRootView
import org.devio.rn.splashscreen.SplashScreen
import android.os.Bundle
import android.os.Build
import android.view.WindowManager
import com.twiliovoicereactnative.VoiceActivityProxy;
import android.widget.Toast;
import android.Manifest;
import android.content.Intent;
class MainActivity : ReactActivity() {

override fun getMainComponentName(): String = "appName"

private val activityProxy = VoiceActivityProxy(this) { permission ->
when {
Manifest.permission.RECORD_AUDIO == permission -> {
Toast.makeText(
this@MainActivity,
"Microphone permissions needed. Please allow in your application settings.",
Toast.LENGTH_LONG
).show()
}
Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && Manifest.permission.BLUETOOTH_CONNECT == permission -> {
Toast.makeText(
this@MainActivity,
"Bluetooth permissions needed.  Please allow in your application settings.",
Toast.LENGTH_LONG
).show()
}
Build.VERSION.SDK_INT > Build.VERSION_CODES.S_V2 && Manifest.permission.POST_NOTIFICATIONS == permission -> {
Toast.makeText(
this@MainActivity,
"Notification permissions needed. Please allow in your application settings.",
Toast.LENGTH_LONG
).show()
}
}
}

override fun onCreate(savedInstanceState: Bundle?) {
SplashScreen.show(this)
super.onCreate(null)
activityProxy.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true)
setTurnScreenOn(true)
}
window.addFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN or
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON or
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
)
}

override fun onDestroy() {
activityProxy.onDestroy()
super.onDestroy()
}

override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
activityProxy.onNewIntent(intent)
}

}
MainReactNativeHost.kt

Код: Выделить всё

import android.app.Application
import com.facebook.react.PackageList
import com.facebook.react.ReactPackage
import com.twiliovoicereactnative.VoiceApplicationProxy

class MainReactNativeHost(application: Application) : VoiceApplicationProxy.VoiceReactNativeHost(application) {
override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG

override fun getPackages(): List {
val packages = PackageList(this).packages
// Packages that cannot be autolinked yet can be added manually here
// packages.add(MyReactNativePackage())
return packages
}

override fun getJSMainModuleName(): String = "index"
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... entemitter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»