#nativescript
#nativescript
Вопрос:
За несколько месяцев до этого тот же код работал нормально, и я смог запустить пользовательскую активность (и пользовательское приложение), но я не знаю, что произошло. Я пробовал в новых проектах воспроизводить шаги, но всегда получаю одну и ту же ошибку:
Невозможно создать приложение com.tns.NativeScriptApplication: com.tns.NativeScriptException: Ошибка вызова функции модуля System.err: Ошибка: com.tns.system.classes.loading.LookedUpClassNotFound: класс «a.b.NativeScriptActivity» не найден. System.err: File: (/data/data/org.nativescript.testing/files/internal/ts_helpers.js:154:25) System.err: System.err: StackTrace: System.err: (/data/data/org.nativescript.testing/files/internal/ts_helpers.js:154:26) System.err: в __decorate(/data/data/org.nativescript.testing/files/internal/ts_helpers.js:13:19) System.err: в ./app/core/android/activity.ts(файл: src/app/core/android/activity.android.ts:5:25)…
Файл Activity ts — activity.android.ts . Я включил JavaProxy декоратор «a.b.NativeScriptActivity». То же самое на Android Maifest. Также добавлена запись в массиве AppComponents на webpack.config.js
ОБНОВЛЕНИЕ: я давно отказался от Nativescript (перешел на Flutter).
Комментарии:
1. Вы добавили путь к файлу activity в конфигурацию webpack?
2. Да, в массиве AppComponent. Я знаю, что это нормально, потому что я пробовал с неправильным путем, и я вижу ошибку. Когда я указываю правильный путь, эта ошибка исчезает
3. Также вы можете увидеть ошибку трассировки ‘./app/core/android/ activity.ts (файл: src/app/core/android/activity.android.ts: 5:25)’, которая является файлом расширенной активности.
Ответ №1:
Для Nativescript 7
вас необходимо добавить следующий декоратор :
@NativeClass()
пример:
@NativeClass()
@JavaProxy("com.lanmis.app.BackgroundJobService")
class BackgroundService extends android.app.job.JobService {
}
В nativescript 6
:
Первое решение :
Если importHelpers: true
существует в tsconfig.json, вы должны изменить его на : importHelpers: false
Второе решение :
Вместо следующего блока :
@JavaProxy("com.lanmis.app.BackgroundJobService")
class BackgroundService extends android.app.job.JobService {
//Code
}
Использовать :
android.app.job.JobService.extend("com.lanmis.app.BackgroundJobService", {
//Code
})
Комментарии:
1. Я пробовал все давным-давно, но безуспешно, и я отказался от Nativescript в пользу Flutter, который работает как шарм.
Ответ №2:
Ошибка класса поиска возникает из-за проблемы с путем действия … проверьте ваш файл webpack на
Если AppPath =»src» ,
const appComponents = [
resolve(__dirname, "src/app/activity.android.ts")
]
или
Если AppPath AppPath = «приложение»
const appComponents = [
разрешить (__dirname, «app / activity.android.ts»)
]