我试图在Android上加载原生相机组件,但总是收到标题错误。
此组件位于本地包中,通过包json链接
"react-native-native-camera": "file:lib/react-native-native-camera",
我可以在包列表中看到我的包,当我在RN代码组件中登录UIManager时,它就在那里。
以下是组件代码:
package com.NativeCamera
import android.util.Log
import com.facebook.react.bridge.ReadableArray
import com.facebook.react.bridge.ReadableMap
import com.facebook.react.common.MapBuilder
import com.facebook.react.uimanager.SimpleViewManager
import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.annotations.ReactProp
class NativeCameraManager : SimpleViewManager<NativeCameraView>() {
companion object {
const val REACT_CLASS = "SmNativeCamera"
}
enum class Events(private val mName: String) {
EVENT_CAMERA_READY("onCameraReady"),
EVENT_ON_MOUNT_ERROR("onMountError"),
EVENT_ON_RECORDING_START("onRecordingStart"),
EVENT_ON_RECORDING_END("onRecordingEnd");
override fun toString(): String {
return mName
}
}
override fun getName(): String {
Log.d("NativeCameraView", "getName() called")
return REACT_CLASS
}
override fun createViewInstance(c: ThemedReactContext): NativeCameraView {
Log.d("NativeCameraView", "createViewInstance() called")
return NativeCameraView(c)
}
override fun getCommandsMap(): Map<String, Int>? {
return MapBuilder.of(
"startRecording",
COMMAND_START_RECORDING,
"stopRecording",
COMMAND_STOP_RECORDING,
"lockFocusAndExposure",
COMMAND_LOCK_FOCUS_AND_EXPOSURE,
"startBeep",
COMMAND_START_BEEP,
"changeFacing",
COMMAND_CHANGE_FACING
)
}
override fun receiveCommand(view: NativeCameraView, commandId: Int, args: ReadableArray?) {
when (commandId) {
COMMAND_START_RECORDING -> view.startRecording(args)
COMMAND_STOP_RECORDING -> view.stopRecording()
}
}
在logcat日志中,我只能看到getName()函数的日志
Log.d("NativeCameraView", "getName() called")
虽然
Log.d("NativeCameraView", "createViewInstance() called")
从未被召唤。
有什么想法吗
P.S.尝试了许多与重置缓存、gradlew清理等相关的事情
在logcat日志中,我只能看到getName()函数的日志
Log.d(“NativeCameraView”,“调用getName()”)
虽然
Log.d(“NativeCameraView”,“调用了createViewInstance()”)
从未被召唤。
有什么想法吗
P.S.尝试了许多与重置缓存、gradlew清理等相关的事情