[WOOMOB-3313] Update target SDK to Android 17 (API 37) - #16413
[WOOMOB-3313] Update target SDK to Android 17 (API 37)#16413AdamGrzybkowski wants to merge 5 commits into
Conversation
Project manifest changes for WooCommerceThe following changes in the --- ./build/reports/diff_manifest/WooCommerce/vanillaRelease/base_manifest.txt 2026-08-14 15:23:51.571985370 +0000
+++ ./build/reports/diff_manifest/WooCommerce/vanillaRelease/head_manifest.txt 2026-08-14 15:23:54.125196721 +0000
@@ -6,7 +6,7 @@
<uses-sdk
android:minSdkVersion="26"
- android:targetSdkVersion="36" />
+ android:targetSdkVersion="37" />
<!-- Mark the camera as optional, as the back camera is missing from some ChromeOS devices -->
<uses-feature
android:name="android.hardware.camera"Go to https://buildkite.com/automattic/woocommerce-android/builds/41580/canvas?sid=01a000dd-249e-45ba-a21c-ae2fbcc44c9a, click on the |
Project manifest changes for WooCommerce-WearThe following changes in the --- ./build/reports/diff_manifest/WooCommerce-Wear/vanillaRelease/base_manifest.txt 2026-08-14 15:24:00.229562011 +0000
+++ ./build/reports/diff_manifest/WooCommerce-Wear/vanillaRelease/head_manifest.txt 2026-08-14 15:24:02.098799505 +0000
@@ -6,7 +6,7 @@
<uses-sdk
android:minSdkVersion="26"
- android:targetSdkVersion="36" />
+ android:targetSdkVersion="37" />
<uses-feature android:name="android.hardware.type.watch" />
Go to https://buildkite.com/automattic/woocommerce-android/builds/41580/canvas?sid=01a000dd-249e-45ba-a21c-ae2fbcc44c9a, click on the |
|
|
There was a problem hiding this comment.
Pull request overview
Updates the project’s Android targetSdkVersion to API 37 (Android 17) and keeps existing Robolectric unit tests running by pinning them to the highest SDK currently supported by the repo’s Robolectric version.
Changes:
- Bumped
targetSdkVersionfrom 36 → 37 in the shared Gradle ext configuration. - Added
robolectric.propertiesin affected modules’ test resources to pin Robolectric tests tosdk=36. - Added an internal release note entry for the target SDK update.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
settings.gradle |
Raises targetSdkVersion to 37 to target Android 17. |
WooCommerce/src/test/resources/robolectric.properties |
Pins app module Robolectric tests to SDK 36 to avoid API 37 unsupported failures. |
libs/store-design-system/src/test/resources/robolectric.properties |
Pins Robolectric tests to SDK 36. |
libs/login/src/test/resources/robolectric.properties |
Pins Robolectric tests to SDK 36. |
libs/fluxc/src/test/resources/robolectric.properties |
Pins Robolectric tests to SDK 36. |
libs/fluxc-tests/src/test/resources/robolectric.properties |
Pins Robolectric tests to SDK 36. |
libs/fluxc-plugin/src/test/resources/robolectric.properties |
Pins Robolectric tests to SDK 36. |
libs/ai-assistant/feature/src/test/resources/robolectric.properties |
Pins Robolectric tests to SDK 36. |
RELEASE-NOTES.txt |
Documents the internal target SDK update (needs PR link per file format). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| 25.5 | ||
| ----- | ||
| - [*****] [Internal] Updated the app's target SDK to Android 17 (API 37) |
|
@malinajirka and @kidinov, could one of you please review this PR, especially around BLE pairing and the local network discovery I mentioned in the PR description? |
|
I actually don't have yet 2 devices with Android 17 but I validated this on a emulator and from what I see it doesn't work. Nothing crashes, true, but the session goes to What is needed is to declare I think it'll make sense if I'll do that as I have more context and will likely neeed to add some explanation. There is an issue WOOMOB-3313 |
🤦 ahh I did test searching for devices on API 37, but not advertising... FYI: I have updated both my devices now to Android 17, so I can verify on physical devices. Do you want to push changes to this branch or a separate one and target this one? |
I'll do that on top of this branch |
irfano
left a comment
There was a problem hiding this comment.
I ran a quick smoke test on the app side and didn't hit any issues. I also went through the behavior changes list and didn't see anything that could affect us. Approving the non-POS parts.

Description
Fixes WOOMOB-3313
Bumps
targetSdkVersionfrom 36 to 37 (Android 17).Behavior changes list at https://developer.android.com/about/versions/17/behavior-changes-17 don't affect our codebase.
The one item worth flagging for the Peacock team: the POS phone-as-reader flow does local-network discovery, which on Android 17 can use the
ACCESS_LOCAL_NETWORKruntime permission directly. I intentionally did not add it. I verified on an API 37 device that the feature keeps working via Android 17's system-mediated device picker and nothing crashes without the permission. Adding the permission is purely a UX improvement (potentially, skips the system picker).The seven new
robolectric.propertiesfiles pin Robolectric tosdk=36(its max supported level). Without them the many Robolectric tests that don't set@Config(sdk=...)inherit the bumpedtargetSdkVersion=37and fail withtargetSdkVersion=37 > maxSdkVersion=36; pinning keeps them on the same SDK they ran at before the bump. Follow-up to upgrade Robolectric to 4.17 (adds API 37 support) and drop these pins: WOOMOB-3849.Test Steps
This is a targetSdk update, so it warrants a smoke pass of critical flows on an Android 17 (API 37) device/emulator:
Images/gif
N/A
RELEASE-NOTES.txtif necessary. Use the "[Internal]" label for non-user-facing changes.