[Critical] Support for 64bit on cocos2d-x on Android!

I used cocosd-x 2.2.6 and cocos2d-x 3.14.
I find this article.

What can I to do??

2 Likes

In case of v3.14 and higher just compile cocos for 64bits as google suggested:

In Application.mk:
APP_ABI := armeabi-v7a arm64-v8a

And in gradle properties:
PROP_APP_ABI=armeabi-v7a:arm64-v8a

With these settings you will have one apk for 32bits and 64 bits. You can also split it into two apks (search the forum).

I guess in case of v2.2.6 it may be a little bit more complicated.

5 Likes

Let’s ask @drelaptop if there is a plan for v2.2.6 and 64-bit. I thought 2.2.6 was already 64-bit, but perhaps I am mistaken. I remember others asking about 64-bit with 2.2.6 years ago.

There are some users that still use v1.0.1 and they have 64-bit working: 64 Bit support for cocos2d-x below 2.2.6

https://discuss.cocos2d-x.org/search?q=64-bit

I have some games developed by v2.2.6 too, really need to know how to support 64 bit as I need to update and test within coming half year.

@slackmoehrle Sorry man, I searched and didn’t see this thread.

Yes please, I am looking for both iOS and Android

1 Like

https://developer.android.com/distribute/best-practices/develop/64-bit

Check this site. Support for 64bit on iOS is OK!
But Android is Not OK in my Projects.

I just modified application.mk(
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
)

But build was failed on v2.2.6 and v3.14.

Any idea?

for 3.14, just need to add arm64-v8a for 64-bit requirement on android phone.

Ok, I see. It’s work on v3.14.
Thanks for your feedback.

Problem is v2.2.6… :frowning:

Another word. for cocos2d-x 3.x, you don’t need to concern 64-bit app unless you want to distribute app to x86 arch, for we didn’t supply x86_64 arch prebuilt libraries. But 99% percent developers don’t need to release on x86_64, refer to

1 Like

I know cocos2d-x 2.x less.

you can check the external prebuilt libs firstly, if the prebuilt libs only include arm 32-bit (armeabi/armeabi-v7a) arch, you will need to compile arm64-v8a arch manually.

I will be porting v2.2.6 to arm64-v8a for our applications. I can post a how-to if it ends up being complex or help people write patches for their branches.

Likely if you are using v2.2.6 for iOS currently you’ve already fixed a bunch of the size_t and syntax issues and your main problem here will be stuff like …\cocos2dx\platform\third_party\android\prebuilt/libjpeg/libs/arm64-v8a/libjpeg.a doesn’t exist in the v2.2.6 source.

3 Likes

@slackmoehrle I think the one question we could use engineering support on would be if there are any known compatibility issues with libz, libpng, libjpeg or libcurl between the version that ships with v2.2.6 and 3.17

Do you have some guide how to update to 64 bit step by step?

Same, please give some step by step guidance.

I did 3 things:

  1. in Application.mk:
    APP_ABI := armeabi armeabi-v7a arm64-v8a

  2. In gradle.properties:
    PROP_APP_ABI=armeabi-v7a:arm64-v8a

  3. In build.gradle(Module: myapp):
    abiFilters 'armeabi-v7a', 'arm64-v8a'

Built the project and I now see both the libs when I unzip the apk file. I hope this is all there is to it :slight_smile:

image

2 Likes

Is it v2.2.6? You use Android Studio?.

In my case, Use Eclipse. Ndk version is r10e… :frowning:

1 Like

Yes, I use Android Studio. Cocos2d-x 3.17.
Migrated away from Eclipse a few years ago. Can’t remember anymore. Sorry I’m not able to help.

I vote for support x86_64 in next version. Number of chromebooks slowly growing…

Also it would be nice to recompile everything with latest ndk (currently prebuilds are compiled with ndk16)

2 Likes

There has another thread to upgrade Eclipse to Android Studio.
I managed to upgrade from Eclipse IDE to Android Studio a few months ago for my v2.2.6 games. Not so difficult to do. Let me know and I can share more instructions.

The point is how v2.2.6 support android 64 bits. Any plan from cocos2dx team to support it as v2.2.6 is the official downloadable version? Can we use the v3.17 64 bits libraries to link with v2.2.6?

The worst case is upgraded all v2.2.6 to latest v3.17 version. Any upgrade guideline or sample for reference?

I try to support 64bit on v2.2.6… but failed… :frowning:
I can’t find libwebsocket.a for arm64-v8a on v2.2.6

I want to cocos2dx team support :slight_smile: