• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

From 1 Aug 2019 all release must 64bit

mag

Active member
3rd Party Module Dev
3rd Party Tool Dev
Joined
Mar 5, 2018
Messages
261
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
 
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.
 
Cool. Could you post the libs then and share the steps off how you created them please?
 
Existing apps have a little longer before you need to update them.
 
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
 
I got this for apps written in old Monkey. I thought they were pure Java?
 
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.
 
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:
Got a few crash.
I guess my hack not really working.
644
 
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:
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 :)
 
@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.
 
Can someone let me know what I need to do to get my apps to still be ok in August? Cheers.
 
I use the windows version of Cerberus for android development. :)
 
Back
Top Bottom