Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

App Bundle: armeabi-v7a is only generated despite arm64 used

Discussion in 'Android' started by Duobix, Jul 23, 2019.

  1. Duobix

    Duobix

    Joined:
    Dec 6, 2014
    Posts:
    52
    Hi there.
    I'm using Unity 2018.4.2f1 here to generate an *.aab file out of our game.
    We got the armv7 and arm64 checkboxes checked in the PlayerSettings,
    we're using IL2CPP, and we're using the older dotnet 3.5 because of legacy reasons,
    and we're pretty much flawlessy generate apk and aab builds out of that.
    We also got a custom gradle template put in place. I haven't yet submitted
    this as a bug.

    The problem is, that when uploading to google play, we see that the aab contains
    no arm64 inside the build, only armeabi-v7a. Also our apks seem to not contain 64bit
    code. That happens despite the fact that we see the Unity is building the 64bit binary.

    Has anyone had a similar issue and could help with that? Thanks in advance.
     
  2. dlegare-synapse

    dlegare-synapse

    Joined:
    Jan 17, 2018
    Posts:
    54
    We're running into the same thing with our game game. We're currently on Unity 2018.3.12f1, but I've confirmed that the issue is still happening on 2018.4.4f1.

    I've tried to do some more digging/testing and what I've noticed is that if I generate an ARMv7 APK, it shows up in the Google Play Console with the expected armeabi-v7 architecture. But if I generate an ARM64 APK, it shows up in the Google Play Console with "none" for supported platforms.

    I've also confirmed that if I upload the Android App Bundle that Unity produces, the Google Play Console still gives me warnings about not having 64 bit support. This seems to confirm that it's not just an issue with the Google Play Console displaying incorrect information.
     
  3. Duobix

    Duobix

    Joined:
    Dec 6, 2014
    Posts:
    52
    OK, I GOT THIS RESOLVED. At least in my case, on Unity 2018.4.2f1.
    1. Made a new Unity project. Set it to app bundle, and IL2CPP + desired architectures (armv7 + arm64 with x86 turned off).
    2. In project settings of this new project, I clicked 'Custom Gradle Template' checkbox. This generates a new mainTemplate.gradle in plugins/android.
    3. Checked this new template (in new project) against our current one (in our game project). It turned pretty much that we had to add a lot of additional stuff here and there to our current template to make it work.
     
    skullthug and skykevin9 like this.
  4. dlegare-synapse

    dlegare-synapse

    Joined:
    Jan 17, 2018
    Posts:
    54
    Ah, it looks like the issue for us was in our Gradle template as well! Specifically, there was a chunk of configuration in there generated by the Android Jar Resolver that was explicitly excluding
    /lib/arm64-v8a/*
    , so Unity was generating the 64 bit code but the it wasn't getting included in either APKs or App Bundles. This was also brought up in another forum thread discussing this issue.

    Hopefully this ends up being helpful for someone else!
     
    skullthug likes this.
  5. skykevin9

    skykevin9

    Joined:
    Jun 13, 2019
    Posts:
    7
    You saved my life, thanks!!!!!