Android app 64 bit requirement

I have created an app with ionic 3 that is currently in the Google play store.

Will it support the Android 64 bit requirement?

Thanks

6 Likes

Bump - anyone have any idea about this?

Not sure but Im guessing Cordova would have to be updated? Here is something similar when iOS switched over to 64bit. https://cordova.apache.org/announcements/2014/11/25/ios-64bit.html

Have somebody more info about it?

I have been searching since posting the question, but cannot find an answer.

Hopefully someone else has.

I’m also looking for this answer anyone??

I’ve only released one app with Ionic, but I’m already considering switching stacks. Things like this… No one seems to know anything (me included!). It’s almost impossible to get any answers. Sigh!

However, since the popup on my screen asks me if my reply really adds anything to the discussion, I’ll throw this in. It’s from the Android Developers Blog:

We anticipate that for most developers, the move to 64-bit should be straightforward. Many apps are written entirely in non-native code (e.g. the Java programming language or Kotlin) and do not need code changes.

Does Cordova use native code? According to Wikipedia, it doesn’t:

Written in: C#, C++, CSS, HTML, Java, JavaScript and Objective-C

Hey guys , check this out

Same question here :raised_hand:

Just got Googe Play email “Starting August 1, 2019 (…) All new apps and app updates are required to provide 64-bit versions of any 32-bit native code they provide” … would be interesting to know how we can handle this with hybrid apps…

1 Like

I believe that Cordova will make something else about this. Because they made with iOS. Look this link

This is the answer from support.

The short answer is it depends on the application :slight_smile:

In general, as long as your generated application (APK) doesn’t have any .so libraries (this includes those from plugins), then you should already be 64-bit compliant.

The potential pain point here is with 3rd party plugins that haven’t been updated to get rid of any .so libraries that are generated or used as part of the plugin setup in your generated APK. I can’t speak for any plugins outside of the Ionic ones, but we will definitely do our best to ensure our plugins are 64-bit compliant by that date (if not already).

I would suggest checking your application and the plugins it uses now to determine whether or not you’ll need to make any updates. Appflow will continue to generate APKs and keep up with standard practices, but we don’t have control over third party libraries so you’ll need to look into that :slight_smile:

Hope that helps!

2 Likes

I searched my apps for .so libraries and see the following:

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/release/0/lib/armeabi-v7a/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/release/0/lib/x86/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/release/0/lib/arm64-v8a/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/release/0/lib/armeabi/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/release/0/lib/x86_64/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/debug/0/lib/armeabi-v7a/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/debug/0/lib/x86/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/debug/0/lib/arm64-v8a/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/debug/0/lib/armeabi/libsqlc-native-driver.so

/platforms/android/app/build/intermediates/transforms/mergeJniLibs/debug/0/lib/x86_64/libsqlc-native-driver.so

I am using the cordova-sqlite-plugin which is an ionic one. Do having these .so libraries mean that I am not 64 bit compliant?

Also I see the following in another app:

/plugins/cordova-plugin-globalization/src/blackberry10/native/simulator/libGlobalization.so

/plugins/cordova-plugin-globalization/src/blackberry10/native/device/libGlobalization.so

/node_modules/cordova-plugin-globalization/src/blackberry10/native/simulator/libGlobalization.so

/node_modules/cordova-plugin-globalization/src/blackberry10/native/device/libGlobalization.so

We do not support blackberry devices (just android/iOS) so I assume I am ok with this app?

There is this opened issue in the cordova-android repo about this requirement:

This is an answer from a Contributor:

Cordova itself fulfills the requirement since it include any NDK (“native”) *.so library files, NDK jar files, or dependencies using NDK libraries in any form.

From a quick scan of all plugins maintained by Apache Cordova I could not find any plugins using NDK libraries in any form.

Although I don’t know which plugins were considered, so it might be good to take into account what mosheinf said:

1 Like

any one have any idea

1 Like

In my case above, if I change my .apk to .zip (that is really all it is) and unzip it. I see in my lib folder .so libraries as I stated above (for cordova-sqlite-plugin in one app and cordova-plugin-globalization in another app). I got a response from an Ionic team member that said to open an issue with the plugins you are having issues with. So that is what I did. I went out to those repositories and opened up an issue. I also did it with the cordova-android repository.

Now I am just waiting to see what their response is.

Got this comment from cordova-sqlite-storage:

https://github.com/litehelpers/Cordova-sqlite-storage/issues/850

64-bit CPUs deliver faster, richer experiences for your users. Adding a 64-bit version of your app provides performance improvements, makes way for future innovation, We want to help you get ready and know you need time to plan. Today we’re providing more detailed information and timelines to make it as easy as possible to transition in 2019. * All new apps and app updates that include native code are required to provide 64-bit versions in addition to 32-bit versions when publishing to Google Play. * This will include games built with Unity 5.6.x or older.We anticipate that for most developers, We understand that migrating a 3rd party game engine is an intensive process with long lead times. we encourage you to begin any work for the 64-bit requirement as soon as possible.We’re excited about the future that 64-bit CPUs bring in areas such as artificial intelligence, Supporting 64-bit prepares the ecosystem for the innovation enabled by the advanced compute capabilities of 64-bit devices, and for future Android devices that only support 64-bit code.

you can use cordova build android --xwalk64bit to build 64 bit mobile application.
Below is reference link:

add cdvBuildMultipleApks=true to gradle.properties and project.properties
then run ionic cordova build --release android --stacktrace --verbose