Skip to content
This repository has been archived by the owner on Apr 3, 2020. It is now read-only.

64 bit #250

Open
ivanboltyshev opened this issue Jun 10, 2019 · 28 comments
Open

64 bit #250

ivanboltyshev opened this issue Jun 10, 2019 · 28 comments

Comments

@ivanboltyshev
Copy link

Please upgrade to the 64 bit version.

@oarsheo
Copy link

oarsheo commented Jun 19, 2019

cordova build android --release --xwalk64bit
or
<preference name="xwalk64bit" value="true" />

@ivanboltyshev
Copy link
Author

ivanboltyshev commented Jun 19, 2019

@oarsheo How to do it in Android Studio?
I use "implementation 'org.xwalk:xwalk_core_library:23.53.589.4'"

@eeschiavo
Copy link

eeschiavo commented Jul 1, 2019

cordova build android --release --xwalk64bit
or
<preference name="xwalk64bit" value="true" />

I did this and now I have 5 apks: arm64, armeabi, armv7, x86, x86_64. All of them have crosswalk integrated (the file size confirms it) but when I try to upload them to Play Store I got errors: if I upload only x86 and armv7 (like before) it says they are not 64bit and from 1, August I wont be able to release updates anymore; if I upload arm64 and x86_64 I get an error which says the users will not be able to update to this release; if I upload arm64, x86_64, armv7 and x86 the Play Store says me that they are the same and it removes two of them.

Do you have any idea? Thanks!

ps: until yesterday I had cordova-ios 6.3 so I only had two apk, x86 and armv7

@alanst32
Copy link

hey @eeschiavo did you get any update on the matter above? Thanks

@voltor
Copy link

voltor commented Jul 17, 2019

I use this way:

cordova build android --release --xwalk64bit
or
<preference name="xwalk64bit" value="true" />
+'org.xwalk:xwalk_core_library:23.53.589.4'
+ I removed 'productFlavors' in the cordova-plugin-crosswalk-webview\mobile-xwalk.gradle

it works for me

@alanst32
Copy link

@voltor thanks for the response, my worked when I changed the command to

ionic cordova build android -- --xwalk64bit --release

@creakosta
Copy link

Does anyone know how to build 1 apk with arm64, armv7, x86, x86_64? Or 2 apk for armv7+arm64 and x86+x86_64? Because google play will not accept separately armv7.apk and x86.apk.

@CCHuang0731
Copy link

Does anyone know how to build 1 apk with arm64, armv7, x86, x86_64? Or 2 apk for armv7+arm64 and x86+x86_64? Because google play will not accept separately armv7.apk and x86.apk.

I just build with arm64, arm7, x86_64 in 1 apk
but after install on 64bit phone, it would ask install Crosswalk Project 64bit from google play or can't run app
Does anyone know how to package all in 1 apk with out install Crosswalk Project 64bit first ??

@lumitor2
Copy link

lumitor2 commented Aug 2, 2019

@CCHuang0731 So you used this below?
ionic cordova build android -- --prod --release --xwalk64bit

Do you have enabled lite mode of crosswalk?
`You can use the Crosswalk lite mode which is the Crosswalk runtime designed to be as small as possible by removing less common libraries and features and compressing the APK.

cordova plugin add cordova-plugin-crosswalk-webview --variable XWALK_MODE="lite"
`

@CCHuang0731
Copy link

CCHuang0731 commented Aug 4, 2019

@CCHuang0731 So you used this below?
ionic cordova build android -- --prod --release --xwalk64bit

Do you have enabled lite mode of crosswalk?
`You can use the Crosswalk lite mode which is the Crosswalk runtime designed to be as small as possible by removing less common libraries and features and compressing the APK.

cordova plugin add cordova-plugin-crosswalk-webview --variable XWALK_MODE="lite"
`

Thank for your reply.
I have been try it . but only 64bit library in apk, no any 32bit library.
I would like to know how to build with 32bit and 64bit in one apk.

@lumitor2
Copy link

lumitor2 commented Aug 5, 2019

It has backward compatibility inside. Now you need only this one package.

@WuglyakBolgoink
Copy link

@lumitor2 which one should we use?

@lumitor2
Copy link

lumitor2 commented Aug 5, 2019

Previously we have got two apk (32 and 64bit version). Now after build there is only one 64bit version, which is backward compatible to 32bit devices.
You have more apk files after this command?
ionic cordova build android -- --prod --release --xwalk64bit

@samnova
Copy link

samnova commented Aug 8, 2019

I used the build command for the 64bit (--release --xwalk64bit) and have the two APKS (x86 and ARM). I installed the ARM (android-arm64-debug.apk) on a Samsung S7 without issue. When testing on a 32 bit device (Samsung S5) I get Failure [INSTALL_FAILED_NO_MATCHING_ABIS]

As I understand this is when there are no matching CPU/CPU-type.
Any idea?

@samnova
Copy link

samnova commented Aug 8, 2019

Update: When looking inside the APK I see that in the lib folder there is only one subfolder with the crosswalk library "arm64-v8a" so no 32 bit included. APK size is also the same as before when we only had the 32 bit version.

@john-doherty
Copy link

john-doherty commented Aug 9, 2019

I'm struggling with the same issue, I used:

cordova plugin add cordova-plugin-crosswalk-webview --variable XWALK_MODE="lite"

With the following in config.xml

<preference name="xwalk64bit" value="xwalk64bit" />
<preference name="buildArchitecture" value="x86_64" />
<preference name="xwalkMultipleApk" value="false" />
<preference name="xwalkVersion" value="xwalk_core_library:23.53.589.4" />

But when I build, it throws the following errors:

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':app:arm64DebugCompileClasspath'.
> Could not find xwalk_core_library_canary-64bit.aar (org.xwalk:xwalk_core_library_canary:17.46.460.1).
  Searched in the following locations:
      https://download.01.org/crosswalk/releases/crosswalk-lite/android/maven2/org/xwalk/xwalk_core_library_canary/17.46.460.1/xwalk_core_library_canary-17.46.460.1-64bit.aar

and

BUILD FAILED in 1s
14 actionable tasks: 1 executed, 13 up-to-date
/Users/JD/Projects/orca-scan/orca-scan-mobile/platforms/android/gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':app:arm64DebugCompileClasspath'.
> Could not find xwalk_core_library_canary-64bit.aar (org.xwalk:xwalk_core_library_canary:17.46.460.1).
  Searched in the following locations:
      https://download.01.org/crosswalk/releases/crosswalk-lite/android/maven2/org/xwalk/xwalk_core_library_canary/17.46.460.1/xwalk_core_library_canary-17.46.460.1-64bit.aar

Looking at the cordova-plugin-crosswalk-webview/platforms/android/src/xwalk.gradle I can see it has hardcoded locations to download the file from, but these locations do not contain the files:

    def xwalkMavenRepo = 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2';
    if (xwalkMode == LITE_MODE) {
        xwalkMavenRepo = 'https://download.01.org/crosswalk/releases/crosswalk-lite/android/maven2';
    }

Any idea what I should do next?

@vinceharmon
Copy link

The 'lite' mode doesn't have the 64 bit libraries. If you look at the 'embedded' version the 64 bit files exists.

https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/23.53.589.4/

@rlindgren

This comment has been minimized.

@wiljeanlouis
Copy link

wiljeanlouis commented Aug 21, 2019

Update: When looking inside the APK I see that in the lib folder there is only one subfolder with the crosswalk library "arm64-v8a" so no 32 bit included. APK size is also the same as before when we only had the 32 bit version.

I got the same problem too. Any help please.

I want to know if it's possible to have both lib/arm64-v8a and lib/amrv7 inside, like this I will try to publish an Android App Bundle instead an apk.

@wiljeanlouis
Copy link

Update: When looking inside the APK I see that in the lib folder there is only one subfolder with the crosswalk library "arm64-v8a" so no 32 bit included. APK size is also the same as before when we only had the 32 bit version.

I got the same problem too. Any help please.

I want to know if it's possible to have both lib/arm64-v8a and lib/amrv7 inside, like this I will try to publish an Android App Bundle instead an apk.

My bad. Everything is ok now.
I just create an apk for each architecture (32bit and 64bit) and upload each of them on Google play store

@deviconceptowl
Copy link

@Jilouwikyky How did you create an apk for each architecture (32bit and 64bit)?

@wiljeanlouis
Copy link

@Jilouwikyky How did you create an apk for each architecture (32bit and 64bit)?

@deviconceptowl
This command cordova build android --release will generate the following folders:
arm64, armeabi, arm7, x86, x86_64.

Everything is ok for arm7 and x86, if you analyze them you will see they contain the lib folder. So you can use them on Google Play Store after jarsigning and zipaligning operations.

But arm64 and x86_64 do not contain the lib folder. You can pass this command
cordova build android --release --xwalk64bit to generate them correctly.
After that do the jarsigning and zipaligning operations.

Upload all the apks in the same release on Google Play Store like that you care about 32bits and 64bits devices

@deviconceptowl
Copy link

@Jilouwikyky Thank you so much.

@CCHuang0731
Copy link

@Jilouwikyky How did you create an apk for each architecture (32bit and 64bit)?

@deviconceptowl
This command cordova build android --release will generate the following folders:
arm64, armeabi, arm7, x86, x86_64.

Everything is ok for arm7 and x86, if you analyze them you will see they contain the lib folder. So you can use them on Google Play Store after jarsigning and zipaligning operations.

But arm64 and x86_64 do not contain the lib folder. You can pass this command
cordova build android --release --xwalk64bit to generate them correctly.
After that do the jarsigning and zipaligning operations.

Upload all the apks in the same release on Google Play Store like that you care about 32bits and 64bits devices

I try to do this, and I got three apk, with x86(with 5 library, x64 libs without xwalk library), arm and intel apks.
I upload all apks to google play store. I use an android phone download app from store.
It still ask me to install xwalk 64bit library first...
Is it correct ??

@deviconceptowl
Copy link

@vinceharmon But my app size doubles when I use embedded instead of lite? What should I do?

@colonelchlorine
Copy link

Thanks for pointing me in the right direction @Jilouwikyky. I've got a fork repo that has a commit that makes that work a bit easier by automatically using libxwalkcore.so of the appropriate cpu architecture (32 vs 64) by using the flavors that Cordova 9 automatically sets if the xWalk64Bit / buildMultipleApks configurations is set. Defaulting to Cordova's way of versionCode adjustment because that seems to happen anyways.

Geotab@613effd

Hope this helps someone on their journey with this dead product 😒

@WuglyakBolgoink
Copy link

@colonelchlorine

Hope this helps someone on their journey with this dead product 😒

this is why I lost many time by eliminating crosswalk from my enterprise project... :-(

@Netrumble
Copy link

I'm using cordova 9 with this configuration

<preference name="xwalkMultipleApk" value="false" />
<preference name="xwalkVersion" value="xwalk_core_library:23.53.589.4" />
<preference name="xwalk64bit" value="xwalk64bit" />
<preference name="xwalkmode" value="embedded" />

in the xwalk gradle file
platforms\android\cordova-plugin-crosswalk-webview
i have set productFlavors to

android {
        if (xwalk64bit != null) {
             productFlavors {
                 /*x86_64 {
                     versionCode defaultConfig.versionCode + 6
                     ndk {
                        abiFilters "x86_64", ""
                     }
                 }*/
                 arm64 {
                     versionCode defaultConfig.versionCode + 9
                     ndk {
                         abiFilters "arm64-v8a", ""
                     }
                 }
				 armv7 {
                     versionCode defaultConfig.versionCode*10 + 2
                     ndk {
                         abiFilters "armeabi-v7a", ""
                     }
                 }
             }
        }
    }

The build generate two files

  • android-arm64-release.apk

  • android-armv7-release.apk

when i upload it to the PlayStore i have the following error:

Fully shadowed APK
Problem:

This APK will not be served to any users because it is completely shadowed by one or more APKs with higher version codes.

Resolution:

Remove this APK from your release or review the targeting and version codes of the APKs that you are including in this release.

the error message refers to the arm64-v8a apk...
how can i fix this problem? creating a bundle?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests