Android store review

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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..
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,135
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.
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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:

magic

Active member
3rd Party Module Dev
3rd Party Tool Dev
Joined
Mar 5, 2018
Messages
165
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.
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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?
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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"?
 

magic

Active member
3rd Party Module Dev
3rd Party Tool Dev
Joined
Mar 5, 2018
Messages
165
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.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,135
Regarding the unsupported api. Which sdk target did you Set and do you have more Details about the api call?
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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)
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,135
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.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,135
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.
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
878
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)
 
Top Bottom