В выпуске не найдена реализация для void com.organization.app.Activity.a().Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 В выпуске не найдена реализация для void com.organization.app.Activity.a().

Сообщение Anonymous »

Я пытаюсь просто вызвать встроенную функцию из моей активности Java на Android, которая реализована в моей кодовой базе C++. Подпись может быть любой, но давайте определим ее как void fooBar().

Мое рабочее пространство организовано в виде древовидной структуры проектов gradle, все они являются проектами "com.android.library", за исключением приложения, которое является "com.android.application".
Все проекты содержат ту или иную форму кода C++, а некоторые из них содержат классы Java. Класс активности находится в корневом проекте («Ядро»). Собственная реализация функции находится в файле .cpp в том же проекте.

Это вывод ошибки из logcat:

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

E/com.organization.app: No implementation found for void com.organization.app.Activity.a() (tried Java_com_organization_app_Activity_a and Java_com_organization_app_Activity_a__)
E/AndroidRuntime: FATAL EXCEPTION: Thread-9
Process: com.organization.app, PID: 3607
java.lang.UnsatisfiedLinkError: No implementation found for void com.organization.app.Activity.a() (tried Java_com_organization_app_Activity_a and Java_com_organization_app_Activity_a__)
at com.organization.app.Activity.a(Native Method)
at com.organization.app.Activity.onStart(Unknown Source:0)
При сборке для отладки я могу безошибочно вызвать эту функцию fooBar(), но в Release она пытается загрузить функцию, используя другое имя. А именно, a(). В сигнатуре функции на родном конце нет ничего плохого, потому что если я просто изменю имя функции на Java_com_organization_app_Activity_a, она будет успешно вызвана.
Я также пробовал добавлять больше функций, и новые имена для этих функций стали b() и c() соответственно.

Похоже, не имеет значения, где я вызываю функцию, поэтому тот факт, что там написано onStart вот это неинтересно.

Я пытался найти кого-нибудь с похожей проблемой, но все они были проблемами с сигнатурой функции в C/C++.

Подробнее здесь: https://stackoverflow.com/questions/621 ... in-release
Ответить

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

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

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

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

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