Hi, I’m a new Solar2D developer who has taken on an old Corona project for my company. I’ve successfully updated and built multiple versions of our app targeting SDK 32, which I notice is the default in the build.gradle.kts (github search) for Solar2D 2023.36.90 which came out last week.
I’ve tried searching the forums for any info regarding when support for SDK 33 will come out, and I’m also not sure if SDK updates are mentioned explicitly anywhere. I tried forcing the targetSdkVersion in my build.settings file as well with no luck.
Anyone with any news on this. Given the deadline is just over a month away. I can see some breaking changes that this can create, and would love to be able to test sooner rather than waiting til the last day
For context, I don’t really control or have permission to push features to main repo and create new releases(which is fair and good idea) so I cannot make a promise or time guess on when it will actually be available for people to download and use.
But Vlad said that everything was working great^ (other then the back button which he pointed is an easy fix), you can see the comment in the link above
Also just to clarify this not like the last api requirement and your app will still be available to download on all devices but you just won’t be able to update or submit new apps with 32 after the deadline so there is not a need to rush update just for targeting 33.
That doesn’t answer the question… Why are we only doing this now with days before the deadline? Surely we can do this in June/July as this is a known thing with Google?
@Scott_Harrison quick question regarding api 33. it now will require the com.google.android.gms.permission.AD_ID permission. is that automatically added or something that needs to be added manually in the build settings.
The reason i am asking is we do have a few kids apps and this permission in the kids apps need to be switched to OFF.
I seen in discord someone was mentioning switching it off via
I agree with @anon63346430 on this one and I’m not saying this directly to you @Scott_Harrison since this has been a problem for some time now. More transparency on why we wait until last weeks for those API updates could go a long way.
I just talked to Vlad and he said he would package it and release it with next week
@chris_raz it depends on what plugins/3rd libraries you are using, if you are not using any analytics or ad plugins you should be fine
Edit: I do agree that we should have done this update sooner, honestly just caught me off guard a little bit and required a bit more work than I thought, we will try to be more on top these changes in the future.
@Scott_Harrison thanks for the answer,
We do use admob which is why I ask, I know in unity we have to disable it in the manifest, but not sure how it would be doable here, and given that won’t be able to update our apps for not being policy compliant with that situation
As I mentioned above is there a way we can have below code available in the applicationChildElements in our build settings file? The uses permission for AD_ID to include the tools:node=“remove” if that would fix it?
With may exciting adventures 3963 got released - https://solar2d.com/download/3693. It targets Android 33. Biggest change is now Android requires a pop up to ask for notification permissions. It can look like
local options =
{
appPermission = "android.permission.POST_NOTIFICATIONS",
urgency = "Critical",
listener = appPermissionsListener,
rationaleTitle = "Notification access required",
rationaleDescription = "Notification access is required to send notifications",
settingsRedirectTitle = "Alert",
settingsRedirectDescription = "Without the ability to take notification, this app cannot properly function. Please grant notification access within Settings."
}
native.showPopup( "requestAppPermission", options )
We would incorporate the pop-up into the notification Plugin to be automatic soon, but probably to have it manually triggered.
Hi @vlads thanks for getting this out… We are facing the issue of the required declaration of the AD-ID in the new api. In unity we simply have to add this line into the androidmanifest to remove the AD_ID permission.
Otherwise google was rejecting the app as alot of our apps are in the family program and uses admob. is there away we can add this in the build settings? i dont want to be stuck from 31st of august submitting non compliant apps getting rejected as we have a pretty large userbase and is a matter of urgency for us.
With Solar2d version 3693 I’m encountering “Error code: 256” when building any apps that use Google Play Game Services. I hadn’t encountered this in 3691. My other apps built fine.
In my build.settings these are the lines used by GPGS:
private/var/folders/80/73y5tf3x0019_mb2qykw72980000gn/T/CLtmpZQMBhT/template/app/build.gradle.kts: Error: commons-logging defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]
/private/var/folders/80/73y5tf3x0019_mb2qykw72980000gn/T/CLtmpZQMBhT/template/app/build.gradle.kts: Error: httpclient defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]
Explanation for issues of type "DuplicatePlatformClasses":
There are a number of libraries that duplicate not just functionality of
the Android platform but using the exact same class names as the ones
provided in Android -- for example the apache http classes. This can lead
to unexpected crashes.
To solve this, you need to either find a newer version of the library which
no longer has this problem, or to repackage the library (and all of its
dependencies) using something like the jarjar tool, or finally, rewriting
the code to use different APIs (for example, for http code, consider using
HttpUrlConnection or a library like okhttp).
2 errors, 0 warnings
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':App:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.
Fix the issues identified by lint, or create a baseline to see only new errors:
```
android {
lint {
baseline = file("lint-baseline.xml")
}
}
```
For more details, see https://developer.android.com/studio/write/lint#snapshot
/private/var/folders/80/73y5tf3x0019_mb2qykw72980000gn/T/CLtmpZQMBhT/template/app/build.gradle.kts: Error: commons-logging defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]
/private/var/folders/80/73y5tf3x0019_mb2qykw72980000gn/T/CLtmpZQMBhT/template/app/build.gradle.kts: Error: httpclient defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]
Explanation for issues of type "DuplicatePlatformClasses":
There are a number of libraries that duplicate not just functionality of
the Android platform but using the exact same class names as the ones
provided in Android -- for example the apache http classes. This can lead
to unexpected crashes.
To solve this, you need to either find a newer version of the library which
no longer has this problem, or to repackage the library (and all of its
dependencies) using something like the jarjar tool, or finally, rewriting
the code to use different APIs (for example, for http code, consider using
HttpUrlConnection or a library like okhttp).
2 errors, 0 warnings
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 50s
Android build failed (256) after 54 seconds
ERROR: Build Failed: Error code: 256