当我使用VideoUIKit-Android Agora时,应用程序崩溃



当我构建样板项目时,应用程序已经崩溃了当我看到logcat时,我看到了这个:90 - 30676/io.agora。agora_android_uikit E/集会。jni_generator_helper.h:(第131行):android.view. h。ViewRootImpl$ calledfromwrongthreadeexception:只有创建视图层次结构的原始线程才能触摸其视图。

我该怎么办?

我代码:

package io.agora.agora_android_uikit
import android.Manifest
import android.graphics.Color
import android.os.Bundle
import android.view.ViewGroup
import android.widget.Button
import android.widget.FrameLayout
import androidx.appcompat.app.AppCompatActivity
import io.agora.agorauikit_android.AgoraButton
import io.agora.agorauikit_android.AgoraConnectionData
import io.agora.agorauikit_android.AgoraSettings
import io.agora.agorauikit_android.AgoraVideoViewer
import io.agora.agorauikit_android.requestPermission
import io.agora.rtc2.Constants
private const val PERMISSION_REQ_ID = 22
private val REQUESTED_PERMISSIONS = arrayOf<String>(
    Manifest.permission.RECORD_AUDIO,
    Manifest.permission.CAMERA,
    Manifest.permission.WRITE_EXTERNAL_STORAGE
)
@ExperimentalUnsignedTypes
class MainActivity : AppCompatActivity() {
    var agView: AgoraVideoViewer? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        try {
            agView = AgoraVideoViewer(
                this, AgoraConnectionData("*******"),
            )
        } catch (e: Exception) {
            println("Could not initialise AgoraVideoViewer. Check your App ID is valid. ${e.message}")
            return
        }
        val set = FrameLayout.LayoutParams(
            FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT
        )
        this.addContentView(agView, set)
        if (AgoraVideoViewer.requestPermission(this)) {
            agView!!.join("test", role = Constants.CLIENT_ROLE_BROADCASTER)
        } else {
            val joinButton = Button(this)
//            this@MainActivity.runOnUiThread(java.lang.Runnable {
            runOnUiThread {
                Runnable { joinButton.text = "Allow Camera and Microphone, then click here" }
            }
//            })
            joinButton.setOnClickListener {
                if (AgoraVideoViewer.requestPermission(this)) {
//                    (joinButton.parent as ViewGroup).removeView(joinButton)
                    agView!!.join("test", role = Constants.CLIENT_ROLE_BROADCASTER)
                }
            }
//            joinButton.setBackgroundColor(Color.GREEN)
//            joinButton.setTextColor(Color.RED)
            this.addContentView(
                joinButton,
                FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, 300)
            )
        }
    }

我想解决我的问题

请使用function进行换行,并在那里进行注释,而不是在主内容视图中提及,并使用UI线程进行换行。并参考样例github agora sdk github参考- https://github.com/AgoraIO-Community/VideoUIKit-Android

相关内容

  • 没有找到相关文章

最新更新