• 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

Android store review

Wingnut

Well-known member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
1,414
When you upload your app to GooglePlay or at least for internal testing or something. You get an automatic review within the first couple of hours.

I got 6 remarks on my first upload. 1 UI -related which I can understand, 0 security related, so those are not a problem I think.
But on performance and crashes I got 5 in total. How do you debug this and find the causes? Am I supposed to upload supersimple code and test a million times? I'm not sure even that it will work. Is there a way to get more details?

Is this somehting you are aware of how to deal with? I'm concerned this will put a stop in my develpoment. Maybe it's nothing and most apps have these kind of issues, what do I know..
 
Crashes you will get when it takes to long going from OnCreate to the regular Update render cycle.
Doesn't provide you details about the crashed. Which modules are used? Cerberusstore won't work ATM.
 
This is all I get so far..

I see you are right about the startup time one one of the performance. It's huge one of the phone models.

EDIT btw the slowstarter is the "Nokia 1", which uses less memory than other models, it uses 19.8MB average where most others uses 49.9-94.9MB. BUT it has huge memory, 1Gb memory. And it has the smallest footprint in app-memory-usage. And this makes it slow too, it uses 8.24% CPU instead of 0.70%-3.79% which most phones did. Strange, lots of memory but it became the slowest starter becuase it uses the smallest footprint, so it seems.

Screenshot 2021-10-11 at 22.05.31.png

Screenshot 2021-10-11 at 22.06.39.png


Screenshot 2021-10-11 at 22.05.19.png


Screenshot 2021-10-11 at 22.05.14.png
 
Last edited:
How do you debug this and find the causes?
For crashes, you can go into stack trace and look at the line number where the error is.
You need the original android build version folder that you compile for that game. The java file is normally here:
.build\android\app\src\main\java\com\pkg\CerberusGame.java

Then find the reason for the error.

java.lang.ArrayIndexOutOfBoundsException:
This error is probably something to do with your Array, not memory.
 
Thanks! Wil look into this whenever I can. Recovering from surgery now and I was intacipating that the store upload was just a simple upload,
Will i be okay to upload an additional app that won't be released at all, just for the sake of testing? And I could change the contents completlty and try the diferent demos form Cerberus lets say for each?
 
Also I'm not sure what the 1 UI issue is all about, I have only graphics on the screen? Sure I use font commands but still they are just DrawText and no UI componnents?

Every game needs some kind of base "UI"?
 
Recovering from surgery now
Get better and get back to your great life soon!🌈☀️

I was intacipating that the store upload was just a simple upload

Yes, upload to playstore is a bit confusing. Google constantly changing things. I think, start next month, they only accept aab files, not apk. All app must submit through Managed Google Play. Meaning signing by google themself. I'm not sure how I going to do that also. But I left that problem until I got the working app to upload. I think it can be solved. Otherwise, many developers will give up, and google doesn't want that.

Will i be okay to upload an additional app that won't be released at all, just for the sake of testing? And I could change the contents completlty and try the diferent demos form Cerberus lets say for each?

I think it's ok for you to upload and test the process. You can always unpublish it soon if you want. There is an option to unpublish the app. It is just that once you publish, you cannot omit it from the list even though you unpublish it. It stays in your app list there forever. As long as you did not publish it yet, you can delete it. This info is what I know base on my experience a few years ago.

Also I'm not sure what the 1 UI issue is all about, I have only graphics on the screen? Sure I use font commands but still they are just DrawText and no UI componnents?

I'm not sure what the UI problem is. I never got this problem. I guess as long as the game is playable or in useful condition, they should accept it.
 
Regarding the unsupported api. Which sdk target did you Set and do you have more Details about the api call?
 
Get better and get back to your great life soon!🌈☀️
Thanks so much!

Yes, upload to playstore is a bit confusing. Google constantly changing things. I think, start next month, they only accept aab files, not apk. All app must submit through Managed Google Play. Meaning signing by google themself. I'm not sure how I going to do that also. But I left that problem until I got the working app to upload. I think it can be solved. Otherwise, many developers will give up, and google doesn't want that.
I think they changed it already I did not see a apk-upload option I had to upload aab. Luckily Cerberus support that already.


I'm not sure what the UI problem is. I never got this problem. I guess as long as the game is playable or in useful condition, they should accept it.
They seem to use OCR to look for text and I go for a no-text-at-all approach right now with the UI. I might have to reconsider things.

Regarding the unsupported api. Which sdk target did you Set and do you have more Details about the api call?

Where do I see the SDK target? I didn't change the default one anyways. I looked around to get you a complete picture of the API warning:

Code:
API in focus is called : Landroid/graphics/Typeface;->sSystemFontMap:Ljava/util/Map;

And It happens two times, these are the stack traces:

StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/graphics/Typeface;->sSystemFontMap:Ljava/util/Map;
    at android.os.StrictMode.lambda$static$1(StrictMode.java:407)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at java.lang.Class.getDeclaredField(Native Method)
    at androidx.test.tools.crawler.platform.hybrid.TextViewHelper.getSystemFontMap(TextViewHelper.java:3)
    at androidx.test.tools.crawler.platform.hybrid.TextViewHelper.<clinit>(TextViewHelper.java:1)
    at androidx.test.tools.crawler.platform.hybrid.TextViewHelper.getTextOfTextViewOrEmpty(TextViewHelper.java:1)
    at androidx.test.tools.crawler.platform.hybrid.EspressoElement.extractDescription(EspressoElement.java:4)
    at androidx.test.tools.crawler.platform.hybrid.EspressoElement.create(EspressoElement.java:2)
    at androidx.test.tools.crawler.platform.hybrid.ViewScreenStateBuilder$ViewTreeNode.<init>(ViewScreenStateBuilder.java:1)
    at androidx.test.tools.crawler.platform.hybrid.ViewScreenStateBuilder.traverseAndBuild(ViewScreenStateBuilder.java:5)
    at androidx.test.tools.crawler.platform.hybrid.HybridStateExtractor.tryExtractingScreenState(HybridStateExtractor.java:9)
    at androidx.test.tools.crawler.platform.hybrid.HybridStateExtractor.getStableScreen(HybridStateExtractor.java:2)
    at androidx.test.tools.crawler.platform.RemotePlatform.handlePerformScrape(RemotePlatform.java:1)
    at androidx.test.tools.crawler.platform.RemotePlatform.messageLoop(RemotePlatform.java:27)
    at androidx.test.tools.crawler.platform.RemotePlatform.lambda$startCrawlAndWaitUntilFinished$0$androidx-test-tools-crawler-platform-RemotePlatform(RemotePlatform.java:1)
    at androidx.test.tools.crawler.platform.RemotePlatform$$ExternalSyntheticLambda0.run(Unknown Source:6)
    at java.lang.Thread.run(Thread.java:919)

    StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/graphics/Typeface;->sSystemFontMap:Ljava/util/Map;
    at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at java.lang.Class.getDeclaredField(Native Method)
    at androidx.test.tools.crawler.platform.hybrid.TextViewHelper.getSystemFontMap(TextViewHelper.java:3)
    at androidx.test.tools.crawler.platform.hybrid.TextViewHelper.<clinit>(TextViewHelper.java:1)
    at androidx.test.tools.crawler.platform.hybrid.TextViewHelper.getTextOfTextViewOrEmpty(TextViewHelper.java:1)
    at androidx.test.tools.crawler.platform.hybrid.EspressoElement.extractDescription(EspressoElement.java:4)
    at androidx.test.tools.crawler.platform.hybrid.EspressoElement.create(EspressoElement.java:2)
    at androidx.test.tools.crawler.platform.hybrid.ViewScreenStateBuilder$ViewTreeNode.<init>(ViewScreenStateBuilder.java:1)
    at androidx.test.tools.crawler.platform.hybrid.ViewScreenStateBuilder.traverseAndBuild(ViewScreenStateBuilder.java:5)
    at androidx.test.tools.crawler.platform.hybrid.HybridStateExtractor.tryExtractingScreenState(HybridStateExtractor.java:9)
    at androidx.test.tools.crawler.platform.hybrid.HybridStateExtractor.getStableScreen(HybridStateExtractor.java:2)
    at androidx.test.tools.crawler.platform.RemotePlatform.handlePerformScrape(RemotePlatform.java:1)
    at androidx.test.tools.crawler.platform.RemotePlatform.messageLoop(RemotePlatform.java:27)
    at androidx.test.tools.crawler.platform.RemotePlatform.lambda$startCrawlAndWaitUntilFinished$0$androidx-test-tools-crawler-platform-RemotePlatform(RemotePlatform.java:1)
    at androidx.test.tools.crawler.platform.RemotePlatform$$ExternalSyntheticLambda0.run(Unknown Source:6)
    at java.lang.Thread.run(Thread.java:764)
 
The performance issues are all on Nokia 1 model, it complains on both extreme slow startup and slow/frozen frame rendering. I have to try to understand what makes this happens. Maybe I should just ban that model.
 
The performance issues are all on Nokia 1 model, it complains on both extreme slow startup and slow/frozen frame rendering. I have to try to understand what makes this happens. Maybe I should just ban that model.
That our move initial loading of assets to the OnUpdate Method and load things in batches.
 
Where do I see the SDK target? I didn't change the default one anyways. I looked around to get you a complete picture of the API warning:
As I don't know the version of CX you use, just look into the targets config file.
 
config.cxs in Android target contains
#ANDROID_TARGET_SDK_VERSION="30"
#ANDROID_BUILD_TOOLS_VERSION="30.0.3"

is that what you needed?

I use Cerberus V2021-07-25 (Trans V2021-07-25)
 
Back
Top Bottom