From 1 Aug 2019 all release must 64bit

magic

Active Member
3rd Party Tool Dev
Joined
Mar 5, 2018
I receive this warning when upload my APK to google play.

603


It seem that our gradletemplete need additional 64bit lib.
jnilibs/arm64-v8a
jnilibs/x86_64

I'm not expert on java. Could someone advice
 

magic

Active Member
3rd Party Tool Dev
Joined
Mar 5, 2018
It requires NDK to compile the lib. I have already compiled it but I'm not sure that everything is in good shape.

I just updated my app to googleplay with this new lib and google accepted as full 64bit release. It will take a few days. I'm waiting for crash reports to make sure if everything is in good shape.
 

MikeHart

Administrator
Staff member
Joined
Jun 19, 2017
Location
Germany
Cool. Could you post the libs then and share the steps off how you created them please?
 

therevills

New Member
Joined
Jun 21, 2017
Yeah a couple of years I think if I dont update them in any way... but still a pain as I'll leave it to do it in the last month :p
 

MikeHart

Administrator
Staff member
Joined
Jun 19, 2017
Location
Germany
They basically are. Just 2 conversion functions for INT and FLOAT. For whatever reason M.S. did that.
I plan to release a new CX version next week which should fix this problem.
 

SLotman

Member
Joined
Jul 3, 2017
Are you sure its functions for INT and FLOAT? I was looking at the source, and it seems to be an interface to OpenGL calls:


But I don't get it. glDrawElements apparently can be used directly from Java, no need for this. And I can't find ANY reference to it anywhere in the android template?

I THINK it could even be safely deleted from the TARGET, as long as you have (and its is there as default) this:
#OPENGL_GLES20_ENABLED=False
#ANDROID_NATIVE_GL_ENABLED=False

What do you guys think?

Oh, no... there is also a langutil? I see what you mean about the parseInt and parseFloat lines :/

WEIRD! I see in cpptool this: ANDROID_LANGUTIL_ENABLED. Maybe if set to 0 this would bypass the langutil thing?
 
Last edited:

magic

Active Member
3rd Party Tool Dev
Joined
Mar 5, 2018
Got a few crash.
I guess my hack not really working.
644
 

SLotman

Member
Joined
Jul 3, 2017
I didn't test it yet, but I think this should be good enough to replace it:

Code:
    public static int parseInt( String str ) {
        int len;
        float f = 0;
        String tmpStr = str.replaceAll("[A-Za-z,]", "");

        len=str.length();
        if (len > 63) { tmpStr = str.substring(0,63); }
  
        try {    
            f = Float.parseFloat(tmpStr);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            return (int) f;
        }           
    }
   
    public static float parseFloat( String str ) {
        int len;
        float f = 0;
        String tmpStr = str.replaceAll("[A-Za-z,]", "");

        len=str.length();
        if (len > 127) { tmpStr = str.substring(0,127); }
  
        try {    
            f = Float.parseFloat(tmpStr);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            return f;
        }
    }
I understand a bit why MS did this. parseInt / parseFloat on Java is AWFUL, and it breaks with anything generating an exception. Also, he wants to keep the result more or less in check so it wouldn't overflow int / float limitations.
 
Last edited:

SLotman

Member
Joined
Jul 3, 2017
Apparently if does work. I removed the nativeGL folder, and replaced langutils.java "native" functions with the ones above. Test game runs fine on my samsung tablet, and Google Play didn't complain about the apk I generated.

Of course, if you use OpenGLES 2.0, this will probably break something (miniB3D comes to mind?) - but at least for now it helps my 2d games to keep going :)
 

magic

Active Member
3rd Party Tool Dev
Joined
Mar 5, 2018
@MikeHart I'm not sure (Not good on java especially NDK thing really new to me). Can't remember exactly what I'm doing. Just try an error. Manually grap the lib from extraction of apk zip... but look like something wrong somewhere.
 
Top Bottom