I am missing the x86_64 folder when compiling with gradle. Why? - android

Working in Ionic 1, with gradle. I need to publish an app in android playstore, but it fails as it requires a 64 bit architecture and my apk has only three folders for my .so files, which are armeabi-v7a, arm64-v8a and x86. I miss x86_64. How can I produce this folder?
If I do separate compiles, I get my x86_64 apk. But this doesn't work on all phones.
Any hint?

Related

Add x86 support to an apk

First of all I'm not an android dev
I have an apk which only supports arm.
I decompiled it with apk tool.
And now i have it as smali files.
Can this be compile with x86 abi support by building it again with gradle in android studio?
Or is there any other way to add x86 support to that apk?
that depends on native code/libs used in your project, but generally you can build an x86 apk in Android Studio. there is no way for "migrating" arm APK to x86 (or any other) without sources and building whole up again. some clues HOWTO in HERE (abiFilters 'x86') and/or HERE (include "x86")

Flutter large apk size and releasing for different ABIs

I am trying to build a release app with low file size in Flutter. Yesterday the release apk size was around 16mb, but after I updated the flutter, the size goes to 23mb.
After some researching, I fount out that flutter generates app bundle with all of the ABIs in it and after the update, new API has been added to apk.
After adding app to android studio apk analyzer, I can see the different ABIs in them as below:
x86_64 7.1mb
arm64-v8a 7mb
armeabi-v7a 6.8mb
I can use flutter build apk --split-per-abi to generate apks for different ABIs.
Now the question is, can a arm64-v8a system run x86_64 apk? (or the otherwise).
Or can any of these ABI apk releases, be run in all the devices?
I don't release my app on app stores, I just put it on my clients website and their clients will download it from there (or it will be sent to them by email, ... ). So I need one release that works in all of the android devices and the full bundle release is way too large (23mb).
EDIT:
I just tested x86_64 build on a arm64-v8a device and it did not install. but the armeabi-v7a version did install.
I did some research and tried the release versions on different devices and this is the result:
The command is : flutter build apk --split-per-abi
The x86_64 apk version does not work on any other devices. I could not find an x86_64 device but I assume it will work on x86_64 devices!
The arm64-v8a apk version gets installed on arm64-v8a but it will not install on armeabi-v7a devices. (armeabi-v7a is older than
arm64-v8a).
armeabi-v7a apk version works on armeabi-v7a and arm64-v8a devices. I did not find an x86_64 device but I think it will work on this
device too.
Summary: The newer version of the ABI can run the older apk builds. The order is: armeabi-v7a then arm64-v8a then x86_64.
For example, armeabi-v7a will install and work on all of the devices and if you build and arm64-v8a apk, it will NOT install on armeabi-v7a devices.
There are other architectures that are no longer used (mips, mips64, armeabi) and Flutter by default, will not contain them in builds.
the X86 and X86_64 architectures are for very limited number of devices, but may be useful for debugging in the emulator.
This was the result of my researches and testings. I decided to only use the armeabi-v7a so the apk size will be 8mb instead of 23mb.
If someone else having this question/trouble, I hope this helps :).
Write this command on the cli of your vscode or android studio to build a 3 version of your flutter android project:
flutter build apk --target-platform android-arm,android-arm64,android-x64
https://flutter.dev/docs/deployment/android
https://cloud.tencent.com/developer/article/1661684

Play Store 64bit apk with 32bit dll

I have Unity project with DLL prepared for architectures: x86, x86_64, armeabi-v7a.
I haven no possibility to convert DLL to architecture arm64-v8a.
However if I build apk for armeabi-v7a only, it works on 64bit device.
But for Google Store I need to build it with arm64-v8a compatibility - this version of application doesn't work because there is error that 64 bit DLL not found.
Is there any possibility to solve this problem?
Maybe there is some possibility to modify apk file after build?
Thanks in advance for help.

how to find that the Android app is 32bit or 64bit

I am new to android. And i don't know how to get the info about android apps.
Can anyone please suggest that how one can find that the android app running is 32bit or 64 bit?
Thanks
APKs are not 32-bit or 64-bit. NDK binaries (.so files) inside of APKs will be compiled for specific CPU architectures. Generally, 32-bit binaries should work fine on 64-bit CPUs.
APK is ZIP. You can open it and check directory lib to see which architectures are supported. If there is no directory lib, it supports all architectures.
https://developer.android.com/ndk/guides/abis.html

How to add armeabi so lib to Unity

I have Unity project just using android plugin to process In App Purchase. The IAP sdk using armeabi rather than armeabi-v7a. I copied armeabi folder to Unity\Assets\Plugins\Android\libs and Unity automatically include in to armeabi-v7a in apk.
Is it possible to tell Unity to keep armeabi (but not armeabi-v7a)?
Which version of Unity do you use? I don't know about old versions, but Unity 5 does not support armeabi, just armeabi-v7

Categories

Resources