Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

don't exclude arm64-v8a libraries #8326

Closed
wants to merge 5 commits into from
Closed

don't exclude arm64-v8a libraries #8326

wants to merge 5 commits into from

Conversation

jakubgs
Copy link
Member

@jakubgs jakubgs commented May 30, 2019

For some reason we were already building for arm64-v8a, but we were excluding the built libraries from the resulting APK bundle.

Fixes: #8292

@jakubgs jakubgs requested a review from a team as a code owner May 30, 2019 15:31
@jakubgs jakubgs self-assigned this May 30, 2019
@status-github-bot
Copy link

status-github-bot bot commented May 30, 2019

Pull Request Checklist

  • Have you updated the documentation, if impacted (e.g. docs.status.im)?

@jakubgs
Copy link
Member Author

jakubgs commented May 30, 2019

Not sure why we build for x86 and x86_64 considering almost no one uses x86 and we exclude the libraries for x86_64 here anyway:
https://github.com/status-im/status-react/blob/131b423a0acb92618192be17a92a9e51feda592e/android/app/build.gradle#L178
Maybe there's some reason I'm missing.

@status-im-auto
Copy link
Member

status-im-auto commented May 30, 2019

Jenkins Builds

Click to see older builds (65)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 756b725 #1 2019-05-30 15:50:09 ~18 min android-e2e 📦 apk
✔️ 756b725 #1 2019-05-30 15:52:49 ~20 min macos 📦 dmg
✔️ 756b725 #1 2019-05-30 15:52:53 ~20 min windows 📦 exe
✔️ 756b725 #1 2019-05-30 15:52:57 ~20 min android 📦 apk
✔️ 756b725 #1 2019-05-30 15:53:56 ~21 min linux 📦 App
✔️ 756b725 #1 2019-05-30 15:57:28 ~25 min ios 📦 ipa
✔️ b39609a #2 2019-06-04 21:52:37 ~14 min ios 📦 ipa
✔️ b39609a #2 2019-06-04 21:54:57 ~17 min macos 📦 dmg
✔️ b39609a #2 2019-06-04 21:55:30 ~17 min linux 📦 App
✔️ b39609a #2 2019-06-04 21:55:36 ~17 min android 📦 apk
✔️ b39609a #2 2019-06-04 21:55:53 ~18 min android-e2e 📦 apk
✔️ b39609a #2 2019-06-04 21:59:28 ~21 min windows 📦 exe
✔️ 401c238 #3 2019-06-09 14:18:30 ~15 min ios 📦 ipa
✔️ 401c238 #3 2019-06-09 14:19:04 ~15 min android 📦 apk
✔️ 401c238 #3 2019-06-09 14:20:45 ~17 min macos 📦 dmg
✔️ 401c238 #3 2019-06-09 14:21:14 ~17 min linux 📦 App
✔️ 401c238 #3 2019-06-09 14:21:18 ~18 min android-e2e 📦 apk
✔️ 401c238 #3 2019-06-09 14:24:21 ~21 min windows 📦 exe
✔️ 80ad026 #4 2019-06-13 15:40:16 ~11 min android 📦 apk
✔️ 80ad026 #4 2019-06-13 15:41:20 ~12 min windows 📦 exe
✔️ 80ad026 #4 2019-06-13 15:42:17 ~13 min macos 📦 dmg
✔️ 80ad026 #4 2019-06-13 15:42:31 ~13 min ios 📦 ipa
80ad026 #4 2019-06-13 15:43:03 ~14 min android-e2e 📄 log
✔️ 80ad026 #4 2019-06-13 15:44:38 ~15 min linux 📦 App
✔️ 80ad026 #5 2019-06-20 14:05:47 ~16 min ios 📦 ipa
✔️ 637d780 #5 2019-07-05 13:23:33 ~13 min android 📦 apk
✔️ 637d780 #5 2019-07-05 13:23:37 ~13 min android-e2e 📦 apk
✔️ 637d780 #5 2019-07-05 13:25:41 ~15 min linux 📦 App
✔️ 637d780 #5 2019-07-05 13:26:19 ~16 min macos 📦 dmg
✔️ 637d780 #5 2019-07-05 13:26:41 ~16 min windows 📦 exe
✔️ 637d780 #6 2019-07-05 13:27:17 ~17 min ios 📦 ipa
dd84a21 #6 2019-07-26 12:31:04 ~38 sec linux 📄 log
dd84a21 #6 2019-07-26 12:31:06 ~38 sec windows 📄 log
dd84a21 #6 2019-07-26 12:31:15 ~47 sec macos 📄 log
dd84a21 #7 2019-07-26 12:31:45 ~1 min ios 📄 log
✔️ 520c159 #7 2019-07-26 12:45:28 ~11 min android 📦 apk
✔️ 520c159 #8 2019-07-26 12:45:28 ~11 min ios 📦 ipa
✔️ 520c159 #7 2019-07-26 12:45:48 ~11 min macos 📦 dmg
✔️ 520c159 #7 2019-07-26 12:47:30 ~13 min windows 📦 exe
✔️ 6f84a44 #9 2019-07-26 13:02:03 ~12 min ios 📦 ipa
✔️ 6f84a44 #8 2019-07-26 13:02:13 ~13 min android-e2e 📦 apk
✔️ 6f84a44 #8 2019-07-26 13:04:07 ~14 min windows 📦 exe
✔️ 6f84a44 #8 2019-07-26 13:05:15 ~16 min macos 📦 dmg
✔️ 6f84a44 #8 2019-07-26 13:07:38 ~18 min linux 📦 App
✔️ 6f84a44 #8 2019-07-26 13:08:01 ~18 min android 📦 apk
✔️ 7cf965f #9 2019-07-26 13:34:21 ~11 min android 📦 apk
✔️ 7cf965f #10 2019-07-26 13:35:42 ~12 min ios 📦 ipa
✔️ 7cf965f #9 2019-07-26 13:36:05 ~13 min android-e2e 📦 apk
✔️ 7cf965f #9 2019-07-26 13:36:58 ~13 min macos 📦 dmg
✔️ 7cf965f #9 2019-07-26 13:37:23 ~14 min windows 📦 exe
✔️ 7cf965f #9 2019-07-26 13:38:49 ~15 min linux 📦 App
✔️ 331a11c #10 2019-07-26 14:23:08 ~11 min android 📦 apk
✔️ 331a11c #11 2019-07-26 14:24:57 ~13 min ios 📦 ipa
✔️ 331a11c #10 2019-07-26 14:25:11 ~13 min windows 📦 exe
✔️ 331a11c #10 2019-07-26 14:26:17 ~14 min macos 📦 dmg
✔️ 331a11c #10 2019-07-26 14:28:03 ~16 min android-e2e 📦 apk
✔️ 331a11c #10 2019-07-26 14:30:14 ~18 min linux 📦 App
✔️ 03aa67c #11 2019-07-26 15:31:42 ~13 min windows 📦 exe
✔️ 03aa67c #11 2019-07-26 15:32:41 ~14 min macos 📦 dmg
✔️ 03aa67c #12 2019-07-26 15:32:51 ~14 min ios 📦 ipa
✔️ 03aa67c #11 2019-07-26 15:33:12 ~14 min android-e2e 📦 apk
✔️ 03aa67c #11 2019-07-26 15:36:30 ~17 min linux 📦 App
✔️ 03aa67c #11 2019-07-26 15:38:40 ~20 min android 📦 apk
✔️ 06d8d33 #12 2019-08-01 12:40:52 ~14 min android 📦 apk
✔️ 8ebd2a1 #13 2019-08-01 16:17:24 ~16 min android 📦 apk
Commit #️⃣ Finished (UTC) Duration Platform Result
f6063e6 #14 2019-08-01 18:03:27 ~10 min android 📄 log
✔️ dbf1cac #15 2019-08-01 18:19:51 ~15 min android 📦 apk

@statustestbot
Copy link

100% of end-end tests have passed

Total executed tests: 49
Failed tests: 0
Passed tests: 49

Passed tests (49)

Click to expand
1. test_block_user_from_public_chat
Device sessions

2. test_filters_from_daap
Device sessions

3. test_copy_and_paste_messages
Device sessions

4. test_send_transaction_from_daap
Device sessions

5. test_request_and_receive_tokens_in_1_1_chat
Device sessions

6. test_deploy_contract_from_daap
Device sessions

7. test_open_transaction_on_etherscan
Device sessions

8. test_public_chat_messaging
Device sessions

9. test_long_press_to_delete_1_1_chat
Device sessions

10. test_password_in_logcat_sign_in
Device sessions

11. test_text_message_1_1_chat
Device sessions

12. test_add_to_contacts
Device sessions

13. test_sign_typed_message (TestRail link is not found)
Device sessions

14. test_unread_messages_counter_1_1_chat
Device sessions

15. test_logcat_send_transaction_from_daap
Device sessions

16. test_send_message_in_group_chat
Device sessions

17. test_logcat_send_transaction_from_wallet
Device sessions

18. test_send_token_with_7_decimals
Device sessions

19. test_modify_transaction_fee_values
Device sessions

20. test_send_eth_from_wallet_to_address
Device sessions

21. test_manage_assets
Device sessions

22. test_logcat_send_transaction_in_1_1_chat
Device sessions

23. test_request_and_receive_eth_in_1_1_chat
Device sessions

24. test_long_press_to_delete_public_chat
Device sessions

25. test_send_emoji
Device sessions

26. test_search_chat_on_home
Device sessions

27. test_logcat_recovering_account
Device sessions

28. test_messaging_in_different_networks
Device sessions

29. test_send_tokens_in_1_1_chat
Device sessions

30. test_network_mismatch_for_send_request_commands
Device sessions

31. test_logcat_sign_message_from_daap
Device sessions

32. test_switch_users_and_add_new_account
Device sessions

33. test_send_stt_from_wallet
Device sessions

34. test_send_eth_in_1_1_chat
Device sessions

35. test_login_with_new_account
Device sessions

36. test_send_eth_from_wallet_to_contact
Device sessions

37. test_add_contact_from_public_chat
Device sessions

38. test_send_two_transactions_one_after_another_in_dapp
Device sessions

39. test_password_in_logcat_creating_account
Device sessions

40. test_backup_recovery_phrase
Device sessions

41. test_offline_status
Device sessions

42. test_open_google_com_via_open_dapp
Device sessions

43. test_unread_messages_counter_public_chat
Device sessions

44. test_sign_message_from_daap
Device sessions

45. test_user_can_remove_profile_picture
Device sessions

46. test_share_contact_code_and_wallet_address
Device sessions

47. test_request_eth_in_wallet
Device sessions

48. test_refresh_button_browsing_app_webview
Device sessions

49. test_backup_recovery_phrase_warning_from_wallet
Device sessions

@statustestbot
Copy link

100% of end-end tests have passed

Total executed tests: 49
Failed tests: 0
Passed tests: 49

Passed tests (49)

Click to expand
1. test_block_user_from_public_chat
Device sessions

2. test_filters_from_daap
Device sessions

3. test_copy_and_paste_messages
Device sessions

4. test_send_transaction_from_daap
Device sessions

5. test_request_and_receive_tokens_in_1_1_chat
Device sessions

6. test_deploy_contract_from_daap
Device sessions

7. test_open_transaction_on_etherscan
Device sessions

8. test_public_chat_messaging
Device sessions

9. test_long_press_to_delete_1_1_chat
Device sessions

10. test_password_in_logcat_sign_in
Device sessions

11. test_text_message_1_1_chat
Device sessions

12. test_add_to_contacts
Device sessions

13. test_sign_typed_message (TestRail link is not found)
Device sessions

14. test_unread_messages_counter_1_1_chat
Device sessions

15. test_logcat_send_transaction_from_daap
Device sessions

16. test_send_message_in_group_chat
Device sessions

17. test_logcat_send_transaction_from_wallet
Device sessions

18. test_send_token_with_7_decimals
Device sessions

19. test_modify_transaction_fee_values
Device sessions

20. test_send_eth_from_wallet_to_address
Device sessions

21. test_manage_assets
Device sessions

22. test_logcat_send_transaction_in_1_1_chat
Device sessions

23. test_request_and_receive_eth_in_1_1_chat
Device sessions

24. test_long_press_to_delete_public_chat
Device sessions

25. test_send_emoji
Device sessions

26. test_search_chat_on_home
Device sessions

27. test_logcat_recovering_account
Device sessions

28. test_messaging_in_different_networks
Device sessions

29. test_send_tokens_in_1_1_chat
Device sessions

30. test_network_mismatch_for_send_request_commands
Device sessions

31. test_logcat_sign_message_from_daap
Device sessions

32. test_switch_users_and_add_new_account
Device sessions

33. test_send_stt_from_wallet
Device sessions

34. test_send_eth_in_1_1_chat
Device sessions

35. test_login_with_new_account
Device sessions

36. test_send_eth_from_wallet_to_contact
Device sessions

37. test_add_contact_from_public_chat
Device sessions

38. test_send_two_transactions_one_after_another_in_dapp
Device sessions

39. test_password_in_logcat_creating_account
Device sessions

40. test_backup_recovery_phrase
Device sessions

41. test_offline_status
Device sessions

42. test_open_google_com_via_open_dapp
Device sessions

43. test_unread_messages_counter_public_chat
Device sessions

44. test_sign_message_from_daap
Device sessions

45. test_user_can_remove_profile_picture
Device sessions

46. test_share_contact_code_and_wallet_address
Device sessions

47. test_request_eth_in_wallet
Device sessions

48. test_refresh_button_browsing_app_webview
Device sessions

49. test_backup_recovery_phrase_warning_from_wallet
Device sessions

@asemiankevich
Copy link
Contributor

@jakubgs is it expected? Android 8

image

@mandrigin
Copy link
Contributor

realm strikes again 😭

@jakubgs
Copy link
Member Author

jakubgs commented Jun 3, 2019

realm/realm-js#1187

realm/realm-js#1187 (comment)

as @abury said, downgrading to 2.2.8 resolved the issue.

Also:

realm/realm-js#1187 (comment)

use this only if you're not planning on releasing a 64 bits version of your app

Great solution, nice.

Upgrading Realm really might help.

@yenda
Copy link
Contributor

yenda commented Jun 3, 2019

@jakubgs sounds like should help me market my PR :)

@jakubgs
Copy link
Member Author

jakubgs commented Jun 4, 2019

@asemiankevich can you please check it out now? I've rebased it on the changes introduced by #8336.

@annadanchenko
Copy link

@jakubgs are there any news for this PR? I can see you've added "release" label recently but there are no new builds/updates. Do you expect to add them soon? cc @rachelhamlin

@jakubgs
Copy link
Member Author

jakubgs commented Jul 25, 2019

@annadanchenko I don't know how to fix this.

If you look at facebook/react-native#24261 there are still people there complaining that 64 bit builds do not work due to react-native, I do not know what to do about that.

@jakubgs
Copy link
Member Author

jakubgs commented Jul 25, 2019

@annadanchenko I think an Android dev should take over this task, because I don't know enough about Android apps to understand why enabling arm64-v8a architecture in builds makes it crash.

I thought the issue was the old JSC that was used in React-Native before 0.59.10, but apparently not.

@flexsurfer
Copy link
Member

flexsurfer commented Jul 26, 2019

so it doesn't work on samsung s10 as well, but i've tried it on readmi note 3 and it works randomly sometimes it stucks in different places (logo screen, generating accounts, or request messages), but sometimes it works pretty well
here are the logs when it gets stuck on logo screen https://gist.github.com/flexsurfer/94d5d67eb3880d2c2a62708b50c660b7
@jakubgs @pombeirp could you take a look?

@flexsurfer
Copy link
Member

these logs when it doesn't get stuck
https://gist.github.com/flexsurfer/b5824a0a1828ad28fc2d7aefa33e6074

@jakubgs
Copy link
Member Author

jakubgs commented Jul 26, 2019

could you take a look?

Those logs tell me nothing, I'm not an android dev.

@jakubgs
Copy link
Member Author

jakubgs commented Jul 26, 2019

Why are you adding x86-64 to env.NDK_ABI_FILTERS in ci/android.groovy?
My understanding is that x86* architecture are only useful for simulators, so they are not necessary for builds that are supposed to run on actual devices, is that incorrect?

@flexsurfer
Copy link
Member

@jakubgs i'm not sure https://medium.com/@andriidrozdov/reactnative-and-android-64-bit-new-google-play-market-rules-what-to-do-584b067d6f1a
IMPORTANT. Insure that in include and versionCodes you have "arm64-v8a" and "x86-64".

@statustestbot
Copy link

80% of end-end tests have passed

Total executed tests: 44
Failed tests: 9
Passed tests: 35

Failed tests (9)

Click to expand
1. test_request_and_receive_tokens_in_1_1_chat

Device 2: Tap on CommandsButton
Device 2: Tap on RequestCommand

Device 2: 'STTAssetButton' is not found on the screen

Device sessions

2. test_logcat_send_transaction_in_1_1_chat

Device 1: Tap on CommandsButton
Device 1: Tap on SendCommand

Device 1: 'ETHroAssetButton' is not found on the screen

Device sessions

3. test_request_and_receive_eth_in_1_1_chat

Device 2: Tap on CommandsButton
Device 2: Tap on RequestCommand

Device 2: 'ETHroAssetButton' is not found on the screen

Device sessions

4. test_send_tokens_in_1_1_chat

Device 1: Tap on CommandsButton
Device 1: Tap on SendCommand

Device 1: 'STTAssetButton' is not found on the screen

Device sessions

5. test_network_mismatch_for_send_request_commands

Device 1: Tap on CommandsButton
Device 1: Tap on SendCommand

Device 1: 'ETHroAssetButton' is not found on the screen

Device sessions

6. test_send_stt_from_wallet

Device 1: Wait for HomeButton
Device 1: Tap on PlusButton

Device 1: 'StartNewChatButton' is not found on the screen

Device sessions

7. test_send_eth_in_1_1_chat

Device 1: Tap on CommandsButton
Device 1: Tap on SendCommand

Device 1: 'ETHroAssetButton' is not found on the screen

Device sessions

8. test_send_eth_from_wallet_to_contact

Device 1: Wait for HomeButton
Device 1: Tap on PlusButton

Device 1: 'StartNewChatButton' is not found on the screen

Device sessions

9. test_offline_status

Device 1: Tap on SignInButton
Device 1: Tap on PlusButton

Device 1: 'StartNewChatButton' is not found on the screen

Device sessions

Passed tests (35)

Click to expand
1. test_block_user_from_public_chat
Device sessions

2. test_filters_from_daap
Device sessions

3. test_copy_and_paste_messages
Device sessions

4. test_send_transaction_from_daap
Device sessions

5. test_deploy_contract_from_daap
Device sessions

6. test_open_transaction_on_etherscan
Device sessions

7. test_public_chat_messaging
Device sessions

8. test_long_press_to_delete_1_1_chat
Device sessions

9. test_password_in_logcat_sign_in
Device sessions

10. test_sign_typed_message
Device sessions

11. test_logcat_send_transaction_from_daap
Device sessions

12. test_send_message_in_group_chat
Device sessions

13. test_logcat_send_transaction_from_wallet
Device sessions

14. test_send_token_with_7_decimals
Device sessions

15. test_modify_transaction_fee_values
Device sessions

16. test_send_eth_from_wallet_to_address
Device sessions

17. test_manage_assets
Device sessions

18. test_long_press_to_delete_public_chat
Device sessions

19. test_send_emoji
Device sessions

20. test_search_chat_on_home
Device sessions

21. test_logcat_recovering_account
Device sessions

22. test_logcat_sign_message_from_daap
Device sessions

23. test_switch_users_and_add_new_account
Device sessions

24. test_login_with_new_account
Device sessions

25. test_add_contact_from_public_chat
Device sessions

26. test_send_two_transactions_one_after_another_in_dapp
Device sessions

27. test_password_in_logcat_creating_account
Device sessions

28. test_backup_recovery_phrase
Device sessions

29. test_open_google_com_via_open_dapp
Device sessions

30. test_unread_messages_counter_public_chat
Device sessions

31. test_sign_message_from_daap
Device sessions

32. test_user_can_remove_profile_picture
Device sessions

33. test_share_contact_code_and_wallet_address
Device sessions

34. test_refresh_button_browsing_app_webview
Device sessions

35. test_backup_recovery_phrase_warning_from_wallet
Device sessions

@jakubgs
Copy link
Member Author

jakubgs commented Jul 26, 2019

IMPORTANT. Insure that in include and versionCodes you have "arm64-v8a" and "x86-64".

Incorrect:

Enabling builds for your native code is as simple as adding the arm64-v8a and/or x86_64, depending on the architecture(s) you wish to support, to the ndk.abiFilters setting in your app's build.gradle file.

https://developer.android.com/distribute/best-practices/develop/64-bit#build_your_app_with_64-bit_libraries

@dependency-lockfile-snitch
Copy link

mobile_files/yarn.lock changed. Pinging @jakubgs, @pombeirp, and @corpetty

@flexsurfer
Copy link
Member

@asemiankevich could you try this one https://status-im-prs.ams3.digitaloceanspaces.com/StatusIm-190726-151832-03aa67-pr.apk

@asemiankevich
Copy link
Contributor

@asemiankevich could you try this one https://status-im-prs.ams3.digitaloceanspaces.com/StatusIm-190726-151832-03aa67-pr.apk

@flexsurfer https://status-im-prs.ams3.digitaloceanspaces.com/StatusIm-190726-151832-03aa67-pr.apk

in this build installation works on huawei -> but then i see endless spinner on Chats and app is not responsive

on Xiaomi i am stuck on password creation -> app is not responsive (back button for ex) and Next is not active.

image

Navigation is very slow in this build on my devices, and for example i can end up here when switching between tabs (huawei) - wallet sign phrase in Chat tab.

image

@flexsurfer
Copy link
Member

we've tested version without realm https://status-im-prs.ams3.digitaloceanspaces.com/StatusIm-190729-090042-498654-pr.apk , from this PR #8528 , it still has the same problem

jakubgs and others added 2 commits August 1, 2019 14:24
Signed-off-by: Jakub Sokołowski <jakub@status.im>
@oskarth
Copy link
Contributor

oskarth commented Aug 5, 2019

What's the state of this PR and how does this relate to the existing debugging work for arm64? It's been open for quite a while now so I'd suggest closing this particular PR if we can't get it merged this week.

@pedropombeiro
Copy link
Contributor

Closing this as I'm working to upgrade to Hermes in #8672, which should fix the issue as shown in https://github.com/PombeirP/arm64-hang-repro-app.

Also created a bug report in RN: facebook/react-native#25970

@jakubgs jakubgs deleted the enable-arm64-v8a branch May 12, 2020 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Google Play 64-bit requirement to solve before August 1, 2019