I have a Unity project that I'm switching from APKs to AABs (app bundles). Previously, when I was building it as an APK, the Google Play Console told me the APK was 64-bit compliant.
Now that I'm building an aab, I'm getting the warning:
This release is not compliant with the Google Play 64-bit requirement.
The following APKs or App Bundles are available to 64-bit devices, but
they only have 32-bit native code
I have both ARM7 and ARM64 architectures set.
I am excluding x86.
When I open the .aab in an archive viewer, the lib folder has all of
the .so's for both arm64-v8a and armabi-v7a.
I'm using IL2CPP, .NET 4.x
I'm using Unity 2018.3.7f1
My ndk version is 16b
My
Android Studio is up to 3.4.2 and gradle is 3.2
A lot of similar threads here talk about following the "Learn more" links, which I've done. I had already done all of the work to get my app 64-bit compliant before switching to app bundles.
Other threads talk about Android Studio solutions, which I can't use because my automated build process involves building with Unity from command line, so it has to be Unity configurations or bust.
My expectation was the app bundles were supposed to be the hot new way to let Google build better APKs for you, but it seems like it's getting confused on whether or not aabs are actually 64-bit compliant, which seems to defeat the whole purpose.
Is this a Unity problem, does Google have an error in their system with regards to app bundles, or is there some other step I'm missing?
For those who have this problem since yesterday (August 19, 2019):
In Player Settings > Other Settings you must now uncheck the x86 box (It is for the 32-bit Intel architecture).
You will now only have the following warning:
The device types on which your application can be installed will be more restricted.
But, in my case, it drops from 12392 devices to 12385 devices.
Here is the opinion of a Unity member on the issue:
x86 is used by less than 0.4% of all Android devices, so it shouldn't have any real impact.
x86 target will be removed completely in Unity 2019.3.
It looks that there was a bug in the Play Console where this message was displayed even when the AAB was compliant. This should have been fixed last Friday afternoon.
Try again now.
Related
I made a game and tried to upload in google play store but it said to set my native code to 64 bit android. I searched for the solution in which I found out to check ARM64 in player setting but I couldn't find that check button. Could anyone help me..?
Based on this unity blog:
The move to a 64-bit Android world is imminent, and we at Unity
believe that it’s a good thing! We added support for Android 64-bit
with Unity 2018.2, and we have now backported it to Unity 2017.4. Read
on to get more details on Google’s 64-bit requirement, ARM 64-bit
advantages, and Android App Bundle support in Unity.
I've been building a game in Unity using the Affectiva Unity SDK, and I can test the game out within Unity fine - the camera turns on, the SDK is called, and I get the response I was expecting.
Yet when I go to build the project, it claims it builds successfully and the camera is activated when the scene starts.. but I get no responses from the SDK. No errors or anything..
Do I need to package this up specially or something?
I suspect the issue is that you are building a 32-bit app on OS X. Is that correct? If it is, can you instead create a universal build or a 64-bit build? The Unity plugin currently only supports the following build options:
Windows 64-bit
Windows 32-bit
OS X Universal
OS X 64-bit (x86_64)
For some odd reason Unity defaults OS X builds to 32-bit. There is documentation about the build requirements on Affectiva's developer portal at the bottom of the page.
I have integrate crosswalk plugin in my Cordova application. When I publish this app to google play. I'm not able to open in my Asus gen phone 2 it throws following error
Error message:Mismatch of CPU Architecture for the Crosswalk
Cordova version - 6.0.0
Crosswalk Version - latest
Can any one help me for resolving this problem?
The Asus phones tend to use an Intel x86 chipset. When doing anything with native code, you need to account for the various chipsets used by devices. Crosswalk is built with native code. It sounds like you did not include builds for both the ARM and x86 chipsets to Google play.
The Cordava Crosswalk plugin out-of-the-box will give you 2 chipset builds, 1 for ARM and 1 for x86 CPU architectures. You should be uploading both APK output files to Google Play.
NOTE: Since Google play changed the max APK size from 50mb to 100mb, you now have the option of package both chipsets together. However, you may still want to consider having a separate build for each and uploading them separately.
I'm running into this basic issue while integrating the AppWarp Unity SDK (no version is specified, downloaded on 10 of March) with Unity 4.3.4 Android player.
The AppWarpVikingMobile sample fails with the same error.
"telnet appwarp.shephertz.com 12346" does connect to the server. Wireshark shows no packets (running with a filter "host appwarp.shephertz.com").
There is a similar issue asked here on February, but it is unresolved still.
Seems that it's SDK import/compatibility issue.
Any ideas?
When running in the player you have to use the AppWarpUnity.dll asset. Its only when building the apk to run on a physical device you need to build with AppWarpUnityMobile.dll asset (and NOT AppWarpUnity.dll) along with the native plugins provided.
It can be a bit confusing because Unity has different restrictions on different versions (Pro and Free) for different platforms with regards to plugins and sockets. AppWarp's goal is to give developers a way to use it with or without the Unity Pro on all platforms.
The interface exposed by the assets is the same so your application code need not change.
This may be an incredibly stupid question, but I have not gotten a clear answer through google. Will the eclipse Blackberry plugin work for the new Blackberry as well as older versions? I am actually an android developer so this is quite a change for me. Any hint will be appreciated. Thanx
EDIT You can use the BlackBerry Runtime for Android apps to run Android Jelly Bean 4.2.2 (10.2) platform applications on the BlackBerry 10 OS. If you are developing for a previous version of BlackBerry 10 OS, use Android Gingerbread 2.3.3. To use the runtime, you must first repackage your Android applications to BAR file format, which is the compatible file format required for an application to run on the BlackBerry 10 OS.
Got this from here. Does this mean that I should write two apps? One for the old blackberry devices and one for the new one?
I'm not sure that the above is clear, so thought I would restate the position as I understand it:
Android applications, repackaged to run on BlackBerry devices, can be used on BB10 and PlayBook devices only. These can not be run on BBOS devices, i.e. BB 5/6/7.
The later releases of BB10, specifically 10.2+, supports Android applications developed using Jelly Bean 4.2.2.
PlayBook and previous levels of BB10, support Gingerbread 2.3.3.
So for example, my Z10, which is running BB10.1, would only be able to load repackaged Android applications developed using Gingerbread. My Curve, running OS 7.0, can't run any Android applications.