最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

android - React Native: Twilio Voice SDK - Null Pointer Exception in getJSEventEmitter() - Stack Overflow

programmeradmin2浏览0评论

I am working on integrating Twilio Voice SDK into my React Native application, and I keep encountering the following error when trying to initialize Twilio:

   'com.twilivoicereactnative.JSEventEmitter 
    com.twilivoicereactnative.VoiceApplicationProxy.jsEventEmitter' 
    on a null object reference
    at com.twilivoicereactnative.JSEventEmitter 
    com.twilivoicereactnative.VoiceApplicationProxy.getJSEventEmitter()
    getJSEventEmitter
    VoiceApplicationProxy.java:100

What I Have Tried:

npm install @twilio/voice-react-native-sdk

Checked my MainApplication.kt for Kotlin


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 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.react.soloader.OpenSourceMergedSoMapping
import com.facebook.soloader.SoLoader
import com.twilivoicereactnative.VoiceApplicationProxy // Import Twilio Voice

class MainApplication : Application(), ReactApplication {

    private val voiceApplicationProxy = VoiceApplicationProxy(this) // Twilio Voice Proxy

    override val reactNativeHost: ReactNativeHost =
        object : DefaultReactNativeHost(this) {
            override fun getPackages(): List<ReactPackage> =
                PackageList(this).packages.apply {
                    // Add any manual packages here if necessary
                }

            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)

    override fun onCreate() {
        super.onCreate()
        SoLoader.init(this, OpenSourceMergedSoMapping)

        // Initialize Twilio Voice SDK
        voiceApplicationProxy.onCreate()

        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() {
        super.onTerminate()

        // Terminate Twilio Voice SDK
        voiceApplicationProxy.onTerminate()
    }
}

Also checked MainActivity.kt


import android.content.Intent
import android.os.Bundle
import com.facebook.react.ReactActivity
import com.twilivoicereactnative.VoiceActivityProxy // Import Twilio Voice Proxy

class MainActivity : ReactActivity() {
    private val voiceActivityProxy = VoiceActivityProxy(this)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        voiceActivityProxy.onCreate(savedInstanceState)
    }

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

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

Verified Permissions in AndroidManifest.xml

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />

Also Tried cleaning and rebuilding the project

cd android ./gradlew clean cd .. npx react-native run-android

Another thing is I tried to add in my react component:

import { StyleSheet, Text, View, TouchableOpacity, Alert } from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome';
import { TwilioVoice } from '@twilio/voice-react-native-sdk';

export default function DialScreen() {

!.... my code...!

}

Expected Behavior

I expect Twilio Voice SDK to initialize correctly and allow me to make and receive calls

I had tested on both Emulator and on Real Device.

I want to integrate voice calling into my React Native android application. I have obtained the Twilio Voice token and started configuring the voice functionality, but it is not working. Any help would be greatly appreciated.

发布评论

评论列表(0)

  1. 暂无评论