Expo React Native: неразрешенные справочные ошибки при запуске npx expo run: androidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Expo React Native: неразрешенные справочные ошибки при запуске npx expo run: android

Сообщение Anonymous »

Я создаю мобильное приложение с помощью Expo React Native. Я пытаюсь реализовать собственный модуль распознавания речи. Я следую этому руководству: https://docs.expo.dev/modules/get-start ... pplication.
Я запускаю npx create-expo-module@latest --local, чтобы создать свой «мой-голосовой модуль» в папке модулей. Вот соответствующие файлы:
/modules/my-voice-module/android/src/main/.../MyVoiceModule.kt

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

package expo.modules.myvoicemodule

import android.content.Intent
import android.os.Bundle
import android.speech.RecognitionListener
import android.speech.RecognizerIntent
import android.speech.SpeechRecognizer
import expo.modules.kotlin.modules.Module
import expo.modules.kotlin.modules.ModuleDefinition

class MyVoiceModule : Module() {
private var speechRecognizer: SpeechRecognizer? = null
private var recognitionIntent: Intent? = null

override fun definition() = ModuleDefinition {
Name("MyVoiceModule")

Method("startListening") {
val context = appContext.reactContext ?: return@Method
context.runOnUiThread {
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(context)
speechRecognizer?.setRecognitionListener(recognitionListener)

recognitionIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, context.packageName)
putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true)
}
speechRecognizer?.startListening(recognitionIntent)
}
}

Method("stopListening") {
val context = appContext.reactContext ?: return@Method

context.runOnUiThread {
speechRecognizer?.stopListening()
speechRecognizer?.destroy()
speechRecognizer = null
}
}

OnEvent("onReadyForSpeech")
OnEvent("onBeginningOfSpeech")
OnEvent("onEndOfSpeech")
OnEvent("onError")
OnEvent("onResults")
OnEvent("onPartialResults")
}

private val recognitionListener = object : RecognitionListener {
override fun onReadyForSpeech(params: Bundle) {
eventEmitter.emit("onReadyForSpeech", null)
}

override fun onBeginningOfSpeech() {
eventEmitter.emit("onBeginningOfSpeech", null)
}

override fun onRmsChanged(rmsdB: Float) {}

override fun onBufferReceived(buffer: ByteArray) {}

override fun onEndOfSpeech() {
eventEmitter.emit("onEndOfSpeech", null)
}

override fun onError(error: Int) {
eventEmitter.emit("onError", mapOf("errorCode" to error))
}

override fun onResults(results: Bundle) {
val matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
matches?.let {
eventEmitter.emit("onResults", mapOf("results" to it))
}
}

override fun onPartialResults(partialResults: Bundle) {
val matches = partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
matches?.let {
eventEmitter.emit("onPartialResults", mapOf("partialResults" to it))
}
}

override fun onEvent(eventType: Int, params: Bundle) {}
}
}
/modules/my-voice-module/src/MyVoiceModule.ts

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

import { NativeModule, requireNativeModule } from "expo";
import { MyVoiceModuleEvents } from "./MyVoiceModule.types";

declare class MyVoiceModule extends NativeModule {
startListening(): void;
stopListening(): void;
}

// This call loads the native module object from the JSI.
export default requireNativeModule("MyVoiceModule");
/modules/my-voice-module/index.ts

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

// Reexport the native module.  On web, it will be resolved to MyVoiceModule.web.ts
// and on native platforms to MyVoiceModule.ts

export { default } from "./src/MyVoiceModule";
export * from "./src/MyVoiceModule.types";

import { EventEmitter } from "expo-modules-core";
import { MyVoiceModuleEvents } from "./src/MyVoiceModule.types";
import MyVoiceModule from "./src/MyVoiceModule";

const voiceEventEmitter = new EventEmitter(MyVoiceModule);

export const startListening = () => {
MyVoiceModule.startListening();
};

export const stopListening = () => {
MyVoiceModule.stopListening();
};

export const addSpeechListener = (callback: (text: string) => void) => {
const subscription = voiceEventEmitter.addListener(
"onSpeechResult",
callback
);
return subscription;
};

export const removeSpeechListener = (subscription: any) => {
subscription.remove();
};
Проблема в том, что теперь я запускаю npx expo run:android, чтобы выполнить сборку и начать тестирование. До этого я без проблем запускал предварительную сборку npx expo. Я всегда получаю следующую ошибку сборки:

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

Using expo modules
- expo-asset (10.0.10)
- expo-constants (16.0.2)
- expo-file-system (17.0.1)
- expo-font (12.0.10)
- expo-keep-awake (13.0.2)
- expo-local-authentication (14.0.1)
- expo-modules-core (1.12.26)
- expo-secure-store (13.0.2)
- my-voice-module (UNVERSIONED)

> Task :my-voice-module:compileDebugKotlin FAILED
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:18:9 Unresolved reference: Method
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:21:21 Unresolved reference: runOnUiThread
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:35:9 Unresolved reference: Method
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:38:21 Unresolved reference: runOnUiThread
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:45:9 Unresolved reference: OnEvent
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:46:9 Unresolved reference: OnEvent
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:47:9 Unresolved reference: OnEvent
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:48:9 Unresolved reference: OnEvent
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:49:9 Unresolved reference: OnEvent
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:50:9 Unresolved reference: OnEvent
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:55:13 Unresolved reference: eventEmitter
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:59:13 Unresolved reference: eventEmitter
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:67:13 Unresolved reference: eventEmitter
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:71:13 Unresolved reference: eventEmitter
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:77:17 Unresolved reference: eventEmitter
e: file:///Users/gualter/Desktop/my-expo-app/modules/my-voice-module/android/src/main/java/expo/modules/myvoicemodule/MyVoiceModule.kt:84:17 Unresolved reference: eventEmitter

FAILURE: Build failed with an exception.
Мне действительно трудно понять, чего мне не хватает. Кажется, он не распознает ничего, что я использую в файле модуля. Я, конечно, могу предоставить любую дополнительную информацию. Спасибо!

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Выставка React-Native для Android Native не работает. Команда npx expo run: Android не работает. Еще до того, как я напи
    Anonymous » » в форуме Android
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • React Native: npx React-Native Run-Android
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Невозможно разрешить модуль expo-router/entry.js при запуске команды `npx expo run:android --variant Release`
    Anonymous » » в форуме Android
    0 Ответы
    70 Просмотры
    Последнее сообщение Anonymous
  • Несоответствие типа и неразрешенные справочные ошибки в build.gradle.kts во время создания приложения Flutter
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • React Native: NPX React-Cline Run-Android
    Anonymous » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

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