У меня есть AsyncTask и я пытаюсь вызвать из него собственный (jni) метод. Является ли это возможным? Я получаю исключение во время выполнения, говорящее о неудовлетворенной ошибке ссылки.AsyncTask вызывает собственный метод
ответ
Да, вы можете вызывать методы JNI из любого потока, включая те, которые используются для AsyncTask. Проблема, скорее всего, будет либо:
- Что родная библиотека не загружена вовремя. Может быть, у вас есть условие гонки здесь, вы используете несколько потоков? Вы загружаете библиотеку в основной поток, участвуя в гонках с вызовом JNI в фоновом потоке?
- То, что у вас есть несоответствие подписи между вашим заглушкой на основе метода на стороне Java и реализацией метода на внутренней стороне.
Я загружаю библиотеку в основное действие и использую ее в asynctask в методе onResume. Если я вызываю собственную библиотеку из метода onResume, комментируя asynctask, она отлично работает. То же самое при вызове из asynctask не работает, давая мне неудовлетворенную ошибку связи с библиотекой. – whiteShadow
Вы перемещаете собственный метод заглушки в AsyncTask? Это изменило бы его подпись. Честно говоря, трудно угадать, что происходит без кода. –
Понял, что я не изменял имя класса в сигнатуре родной библиотеки. – whiteShadow
- 1. gson.toGson() не вызывает собственный метод сериализации
- 2. Функция jQuery plugin вызывает собственный метод?
- 3. AsyncTask не вызывает onPostExecute()
- 4. AsyncTask не вызывает onPostExecute()
- 5. Создание AsyncTask вызывает сбой
- 6. AsyncTask подстроен или собственный класс?
- 7. Asynctask вызывает NullPointerExeption
- 8. AngularJS | IIFE в контроллере, который вызывает собственный метод
- 9. Почему подкласс вызывает метод своего родителя, а не собственный?
- 10. Остановка AsyncTask вызывает завершение службы
- 11. Android AsyncTask # 2 вызывает detach()
- 12. AsyncTask функция ожидания вызывает ошибки
- 13. Progressdialog в AsyncTask вызывает NullPointerException
- 14. Обратный вызов AsyncTask не вызывает
- 15. Android AsyncTask не вызывает onPostExecute
- 16. AsyncTask не вызывает onProgressUpdate, onPostExecute
- 17. Метод AsyncTask Android OAuth2Client
- 18. Отменить метод изнутри AsyncTask
- 19. Отмена AsyncTask прекращает метод
- 20. setAdapter метод от AsyncTask
- 21. метод доступа из AsyncTask
- 22. AsyncTask in onCreate метод
- 23. Остановить метод AsyncTask doInBackground
- 24. Smalltalk собственный новый метод
- 25. Создать собственный метод Http
- 26. Собственный метод не найден
- 27. Как написать собственный метод?
- 28. Интерфейс, реализующий собственный метод
- 29. Exception OutofMemoryError dalvik.system.VMRuntime.newNonMovableArray (собственный метод)
- 30. javascript prototype overriding метод вызывает базовый метод
да, возможно. проблема, скорее всего, связана с тем, как вы включаете jni lib – njzk2
. Я включаю его так же, как в activity, system.loadlibrary ("libraryname"), но он не работает. Могу ли я сделать что-то еще, чтобы заставить его работать? – whiteShadow