Is it safe to target sdk version 33 (Android 13)? - android

So I have seen that Android 13 has been officially released. But, when I searched for it in the official page, I have seen that it appears as beta version: https://developer.android.com/studio/releases/platforms#13
So, my question is, is it better to wait some time so that it is safe to target that Android 13 version?

I would say - it depends on your app, but mostly sure, it's safe. For example, we faced a couple of issues with the notification permission and a foreground service and it took some time to fix and test it, and it's always better to test such things on a real device rather than an emulator with a strange behaviour coming from the newest system image. If you don't have any particular/hardware places which should be tested on a physical device only, then I think that it's safe enough - you'll have plenty of time to fix any random roughnesses :)

Yes it is safe, Mine is given below in android/build
.gradle
ext {
buildToolsVersion = "33.0.1"
minSdkVersion = 23
compileSdkVersion = 33
targetSdkVersion = 33
androidXCore = "1.6.0"
kotlinVersion = "1.6.0"
}

Related

"Unsupported value: Tiramisu" while I try to set up the Android 13 SDK

I followed this page: https://developer.android.com/about/versions/13/setup-sdk
to set up Android 13 SDK.
In my build.gradle:
android {
compileSdkVersion("Tiramisu")
defaultConfig {
targetSdkVersion("Tiramisu")
}
}
Then I got the error:
> Unsupported value: Tiramisu. Format must be one of:
- android-31
- android-31-ext2
- android-T
- vendorName:addonName:31
I tried to use "33" instead of "Tiramisu", but it's not working.
I'm using the latest Android Studio Preview as the instruction.
Is there anyone trying to use Android 13 SDK?
This answer is no longer valid because you can use API version 33 now for Tiramisu as it's officially released
Credit to #NickolaySavchenko - Posting this answer since I've been waiting for him for a day.
Finally, after taking advice from #NickolaySavchenko - I have a final working code like this.
compileSdkVersion "android-Tiramisu"
targetSdkVersion "Tiramisu"
Yes, you see it correctly, the targetSdkVersion is Tiramisu, not android-Tiramisu so that it can run in an emulator API Tiramisu device.
I tested and can confirm that minSdkVersion doesn't need to change to android-Tiramisu or Tiramisu. I'm still keeping it as 19 and it's working great.
As #NickolaySavchenko said
compileSdkPreview "android-Tiramisu"
targetSdkPreview "android-Tiramisu"
working fine
and to run it on android 13 you also need to change your minSdk to "android-Tiramisu"

Displaying "Requires Android" for the App in Google Play store

I have released my App to Google Play store and it shows fine. But for this App in Additional info I do not see "Requires Android" version.
I have following version restriction defined in build.gradle and users with their Android version below 5 / sdk 28 are not able to install which is right but not sure why it is not showing up in additional info?
ext {
buildToolsVersion = "30.0.2"
minSdkVersion = 28
compileSdkVersion = 30
targetSdkVersion = 30
androidXCore = "1.5.0"
}
Here is the "Requires Android info not showing for my App. This is sample image from Google Play Store
Appreciate any help / pointers to fix this.
Thank you.
-Reds

How To Determine SDK Level of Android App? [duplicate]

This question already has answers here:
Android: Get TargetSDKVersion in runtime
(5 answers)
Closed 2 years ago.
I am trying to determine the Build SDK level from within my app. I tried
Log.i( "MYAPP", "SDK="+Build.VERSION.SDK_INT );
I previously had been building for level 28, but recently upgraded to level 30.
My module's current build.gradle file included:
android {
compileSdkVersion 30 // was 28
defaultConfig {
applicationId "com.ramrod.MyApp"
minSdkVersion 23
targetSdkVersion 30 // was 28
more ...
Strangely, logcat still shows level 28.
I've re-synced, did a clean and rebuilt the app but no change.
What's going on
?
As you can see in the documentation here, SDK_INT returns the OS version of the device in which the app is running, and not the targetSdkVersion you're looking for.
public static final int SDK_INT
The SDK version of the software
currently running on this hardware device.
This value never changes
while a device is booted, but it may increase when the hardware
manufacturer provides an OTA update.
To get the targetSdkVersion you need to use ApplicationInfo.targetSdkVersion class:
packageManager.getApplicationInfo(youPackage, 0).targetSdkVersion;

How to debug android SDK classes?

I want to check why sometimes my invalidate() not call onDraw.
1 step: I set a breakpoint on invalidate().
2 step: I click "Step Into" button (also tried "Force Step Into"). But debugger goes not inside invalidate(). It goes inside getElevation() instead. Why?
picture 1
Also, I tried to set a breakpoint inside invalidate() method of View class on line invalidate(true);. But it also remains unreachable. It says that "No executable code ...".
picture 2
I solved it partially.
Device version must be the same as SDK sources version, compileSdkVersion, buildToolsVersion, targetSdkVersion.
In my case SDK sources API 24.
build.gradle:
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
targetSdkVersion 24
...
}
Tracing now works (with these parameters only on API 24 device) but breakpoints still don't work (same No executable code error).
You can try to download the Sources for Android SDK for your targetSdkVersion inside build.gradle and see if you can debug inside the methods then.
But note that the newest Android API 25 does not have the sources available yet.

Yazeed44 MultiImagePicker not working

I was trying to implement the MultiImagePicker from Yazeed44 (https://github.com/yazeed44/MultiImagePicker).
The problem I have is, when I open the image selector:
new Picker.Builder(getActivity(), new MyPickListener(), R.style.MIP_theme)
.build()
.startActivity();
The view remains empty where it should be displaying the photo albums to select from. See the screenshot:
What am I missing in order to get this to work?
I'm testing with a Google Nexus 6P with Android 6.0.1. minSdkVersion 19, targetSdkVersion 23. And I'm Gradle importing: net.yazeed44.imagepicker:imagepicker:1.3.0
Try to set targetSdkVersion to 22, the problem occurs because in android 6 you need to request for permissions at run-time. If you have configured targetSdkVersion to 23 in your project, your app needs to support Runtime Permission, but if you doesn't have your code prepared to manage this, you neeed to change targetSdkVersion to 22, in this way you are going to get de old permission behavior.
"Warning: Right now when you create a new project in Android Studio.
targetSdkVersion will be automatically set to the latest version, 23.
If you are not ready to make your application fully support the
Runtime Permission, I suggest you to step down the targetSdkVersion to
22 first."
https://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en

Categories

Resources