Вы можете использовать препроцессор C для предварительной сборки сборки и использования макроса, чтобы добавить недостающие символы подчеркивания в Windows. Во-первых, вам нужно переименовать файл сборки из bar.s в bar.S (capital 'S'). Это говорит gcc использовать cpp для предварительной обработки файла.
Чтобы добавить недостающие символы подчеркивания, вы можете определить макрос «cdecl» следующим образом:
#if defined(__WIN32__)
# define cdecl(s) _##s
#else
# define cdecl(s) s
#endif
Затем используйте его так: :
.global cdecl(bar)
cdecl(bar):
movl 4(%esp), %eax
addl %eax, %eax
ret
Обратите внимание, что для Mac OSX также требуются ведущие символы подчеркивания, поэтому вы можете обновить первую строку макроса следующим образом:
#if defined(__WIN32__) || defined(__APPLE__)
Установите флаг намерения, которое вы передаете ожидающему Activity
, чтобы:
Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
Используйте этот код
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);