-
Notifications
You must be signed in to change notification settings - Fork 88
feat: Modernize Project (AndroidX, Gradle 8.5) & Finalize Android 15 Support #170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
barissalihbabacan
wants to merge
33
commits into
ConnectSDK:master
Choose a base branch
from
barissalihbabacan:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit fixes the entire build process for the project: - Updates the Core submodule to a fixed, buildable personal fork. - Adds AndroidX support via gradle.properties. - Upgrades the Android Gradle Plugin and Gradle Wrapper to modern versions. - Updates SDK versions and dependencies. The project is now buildable and ready for further development.
The previous build failed on JitPack because the 'publishToMavenLocal' task was not found. This commit resolves the issue by applying the 'maven-publish' plugin to both the root project and the Core submodule. This standard plugin provides the necessary tasks for Gradle to publish the library artifacts, which is a requirement for services like JitPack. With this change, the project is now fully configured to be built and published.
This commit resolves the final issues preventing the project from building successfully on JitPack. Changes in Core submodule (Connect-SDK-Android-Core): - Removed the legacy 'package' attribute from AndroidManifest.xml as required by modern AGP. Changes in main project (Connect-SDK-Android): - Applied the 'maven-publish' plugin to provide the 'publishToMavenLocal' task. - Updated the Core submodule reference to point to the latest commit containing all fixes. With these changes, the entire project is now fully configured to be built and published.
This commit refactors the `build.gradle` file by:
- Updating the Android Gradle plugin from version 8.2.1 to 8.2.2.
- Removing source directory definitions for 'core' and 'modules/google_cast' from `main` and `androidTest` source sets.
- Removing the `useLibrary 'org.apache.http.legacy'` declaration.
- Updating the following dependencies:
- `org.java-websocket:Java-WebSocket` from version 1.5.3 to 1.5.7
- `javax.jmdns:jmdns` to `org.jmdns:jmdns` and updating its version from 3.5.5 to 3.5.9
- `com.googlecode.plist:dd-plist` from version 1.23 to 1.28
This commit addresses several critical compilation errors in the Core module that prevented the project from building with a modern toolchain. Changes: - **Added Missing Libraries:** Addedlgcast-android-lib.jarlocally and included thehttpclient-androiddependency to resolve numerous 'package does not exist' and 'cannot find symbol' errors related to LG Cast and Apache HTTP methods. - **Fixed Broken Code:** Commented out the call to the missingDefaultPlatformclass inDiscoveryManager.javato allow the project to compile. This functionality needs to be revisited in the future. - **Added Missing Permission:** Added theACCESS_NETWORK_STATEpermission to theCoremodule's manifest, which is required by theDiscoveryManagerto listen for network changes.
This commit streamlines the `build.gradle` file by: - Consolidating `repositories` and `dependencies` blocks in `buildscript`. - Removing redundant `packagingOptions` as these are often handled by default or other configurations. - Simplifying `sourceSets` by relying on Gradle's default directory conventions. - Making the `release` build type configuration more concise. - Changing the `lgcast-android-lib.jar` dependency to include all JAR files in the `libs` directory using `fileTree`.
This commit adds the `androidx.localbroadcastmanager:localbroadcastmanager:1.1.0` dependency to the project.
This commit simplifies the `sourceSets` configuration in `build.gradle`, as Gradle can infer standard paths, and adds the `useLibrary 'org.apache.http.legacy'` declaration.
This commit adds the `buildConfig true` setting to the `buildFeatures` block in the `build.gradle` file. This enables the generation of the `BuildConfig` class, which provides build-specific constants.
This commit removes direct usages of `BuildConfig.DEBUG` in `CameraService.java` and `MirroringService.java`. It also updates `CameraService.java` to conditionally call `startForeground` with `ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE` only on Android Q (API level 29) and above.
Additionally, the `buildFeatures { buildConfig true }` block has been removed from the `build.gradle` file.
This commit updates several dependencies to their newer versions: - `org.java-websocket:Java-WebSocket` from 1.5.7 to 1.6.0 - `org.jmdns:jmdns` from 3.5.9 to 3.6.2 (in core/build.gradle) and adds it as a direct dependency in the root build.gradle. - `com.google.android.gms:play-services-cast-framework` from 21.4.0 to 22.1.0 (in both core/build.gradle and root build.gradle) - `androidx.mediarouter:mediarouter` from 1.6.0 to 1.8.1 - `androidx.annotation:annotation` from 1.6.0 to 1.9.1 - `androidx.appcompat:appcompat` from 1.6.1 to 1.7.1 - `com.googlecode.plist:dd-plist` from 1.23 to 1.28 It also simplifies the root `build.gradle` file by: - Removing a commented-out line about `android-maven-gradle-plugin` in `buildscript.dependencies`. - Removing commented-out lines in `sourceSets.main.java.srcDirs`. - Removing commented-out test dependencies. - Removing the application of `maven-push.gradle`. Additionally, comments indicating unresolved symbols related to JmDNS in `ZeroconfDiscoveryProvider.java` have been added.
This commit downgrades the `org.java-websocket:Java-WebSocket` dependency from version `1.6.0` to `1.5.7` in `core/build.gradle`. It also moves the `org.java-websocket:Java-WebSocket:1.5.7` and `androidx.localbroadcastmanager:localbroadcastmanager:1.1.0` dependencies from `core/build.gradle` to the root `build.gradle` file.
This commit updates the `build.gradle` file to include `junit`, `mockito-core`, `robolectric`, and `androidx.test:core` as test dependencies. In `ConnectableDeviceTest.java`, the initialization of `DiscoveryManager` is changed from using `Robolectric.application` to `ApplicationProvider.getApplicationContext()`.
This commit updates several test dependencies in `core/build.gradle`, including JUnit, Mockito, Robolectric, and adds AndroidX Test Core, PowerMock, and XMLUnit. Test files have been updated to: - Use `ApplicationProvider.getApplicationContext()` instead of `Robolectric.application`. - Use `ShadowLooper.idleMainLooper()` instead of `Robolectric.runUiThreadTasksIncludingDelayedTasks()`. - Use `org.junit.Assert` instead of `junit.framework.Assert`. - Use `org.mockito.ArgumentMatchers.any` instead of `org.mockito.Matchers.any`. - Use `java.io.ByteArrayInputStream` instead of `org.apache.tools.ant.filters.StringInputStream`. The `kotlin-android` plugin has been added to `core/build.gradle`. Additionally, some commented-out tests in `AirPlayServiceTest.java` and unresolved symbol comments in `DLNAServiceTest.java` and `ZeroConfDiscoveryPrividerTest.java` (now `ZeroconfDiscoveryProviderTest.java`) have been noted. The file `ZeroConfDiscoveryPrividerTest.java` was also renamed to `ZeroconfDiscoveryProviderTest.java`.
This commit adds `group` and `version` properties to the `build.gradle` and `core/build.gradle` files. These are set using `project.findProperty` with fallback default values.
This commit adds the `maven-publish` plugin and configures publishing for the `core` module and the main project. In `core/build.gradle`: - A new `afterEvaluate` block is added to configure a `MavenPublication` named `release`. - This publication will publish the `release` component with `groupId = 'com.github.Astro-bosss'`, `artifactId = 'connect-sdk-android-core'`, and `version = 'v3.0.3-SNAPSHOT'`, using project properties if available. In `build.gradle`: - Similarly, an `afterEvaluate` block is added to configure a `MavenPublication` named `release`. - This publication will publish the `release` component with `groupId = 'com.github.Astro-bosss'`, `artifactId = 'connect-sdk-android'`, and `version = 'v3.0.3-SNAPSHOT'`, using project properties if available.
This commit removes the `afterEvaluate { publishing { ... } }` blocks from both `core/build.gradle` and `build.gradle`. These blocks were previously used for configuring Maven publications.
This commit introduces several changes to the build process and project structure:
- **Gradle Wrapper Downgrade:** The Gradle wrapper version is downgraded from 8.5 to 8.4.
- **Maven Local Repository:**
- Adds `pom.xml` file for the root project.
- Adds Maven metadata files (`core-1.0.0.pom` and `maven-metadata.xml` along with their checksums) to `repo/com/connectsdk/core/` for version `1.0.0`.
- Configures the `core/build.gradle` to publish the `core` module to a local Maven repository located at `$rootDir/repo`.
- **`core/build.gradle` Refactor:**
- Migrates to the `plugins` block for applying `com.android.library` and `maven-publish`.
- Removes the `buildscript` block as dependencies are handled by the root `build.gradle` or plugin management.
- Simplifies `android` block:
- Removes explicit `buildToolsVersion`.
- Updates `sourceSets` paths to standard `src/main/` structure.
- Adds a `debug` build type.
- Reorders and updates dependencies:
- `org.jmdns:jmdns` version `3.6.2`.
- `com.google.android.gms:play-services-cast-framework` version `21.4.0`.
- Removes test dependencies from `core/build.gradle`.
- **Root `build.gradle` Changes:**
- Updates `com.android.tools.build:gradle` classpath dependency to version `8.2.2`.
- Removes the `android` block and its configurations (namespace, compileSdk, defaultConfig, packagingOptions, sourceSets, buildTypes, lintOptions, compileOptions, useLibrary).
- Removes the `dependencies` block (project, androidx, google, testing, and local JARs).
- Defines an `ext` property `localMavenRepo`.
- **`gradle.properties` Updates:**
- Adds Gradle performance optimization properties: `org.gradle.jvmargs`, `org.gradle.parallel`, and `org.gradle.caching`.
- **`settings.gradle` Update:**
- Sets `rootProject.name` to "Connect-SDK-Android".
- **`jitpack.yml` Update:**
- Changes the `install` command from `publishToMavenLocal` to `install`.
This commit introduces several changes to the Gradle configuration and dependencies:
**Gradle Wrapper:**
- Updates Gradle wrapper distribution URL to `gradle-9.0-milestone-1-bin.zip`.
- Removes `networkTimeout` and `validateDistributionUrl` properties.
**`core/build.gradle`:**
- Switches from `plugins` block to `buildscript` and `apply plugin` for plugin application.
- Adds Kotlin Android plugin (`kotlin-android`).
- Defines `group` and `version` for JitPack publishing.
- Enables `useLibrary 'org.apache.http.legacy'`.
- Enables `buildConfig` in `buildFeatures`.
- Simplifies `sourceSets` paths (e.g., `src/main/AndroidManifest.xml` to `AndroidManifest.xml`).
- Adds `testOptions` for unit tests to include Android resources.
- Configures publishing to only include the `release` variant and include sources JAR.
- Adds Kotlin BOM (`org.jetbrains.kotlin:kotlin-bom:1.9.22`) and Kotlin standard library.
- Adds exclusion rules for `kotlin-stdlib-jdk7` and `kotlin-stdlib-jdk8`.
- Adds test dependencies: `junit`, `mockito-core`, `robolectric`, `androidx.test:core`, `powermock-api-mockito`, `xmlunit`, and `org.apache.ant:ant`.
- Updates `publishing` configuration:
- Sets `groupId` to `com.github.Astro-bosss`.
- Sets `artifactId` to `Connect-SDK-Android`.
- Dynamically sets `version` using project property or defaults to "3.0.7".
- Adds POM details including name, description, URL, and license information.
- Removes `afterEvaluate` block for publishing.
- Removes local Maven repository configuration (`url = uri("${rootProject.projectDir}/repo")`).
**`build.gradle` (Root):**
- Adds Kotlin Gradle plugin classpath dependency (`org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22`).
- Adds JitPack Maven repository (`https://jitpack.io`).
- Adds a resolution strategy to pin all `org.jetbrains.kotlin` dependencies to version `1.9.22`.
- Removes `ext { localMavenRepo = "$rootDir/repo" }`.
- Adds a `clean` task to delete `rootProject.buildDir`.
This commit introduces several changes to the Gradle setup and dependencies in the `core` module and the root project.
**`core/build.gradle`:**
- **Plugin Application:** Removes the `buildscript` block. Plugins (`com.android.library`, `kotlin-android`, `maven-publish`) are now applied directly.
- **Removed JitPack Configuration:** Deletes `group` and `version` properties previously used for JitPack.
- **Android Configuration Simplification:**
- Removes `useLibrary 'org.apache.http.legacy'`.
- Removes explicit `sourceSets` configuration, relying on default paths.
- Removes `buildTypes` (release, debug) block.
- Removes `testOptions` block.
- Removes `publishing { singleVariant("release") { withSourcesJar() } }` block.
- **Dependency Changes:**
- Removes Kotlin BOM (`org.jetbrains.kotlin:kotlin-bom:1.9.22`).
- Removes exclusion rules for `kotlin-stdlib-jdk7` and `kotlin-stdlib-jdk8`.
- Updates `org.jmdns:jmdns` from version `3.6.2` to `3.5.9`.
- Adds `org.apache.httpcomponents:httpclient-android:4.3.5.1`.
- Removes all test dependencies (JUnit, Mockito, Robolectric, AndroidX Test Core, PowerMock, XMLUnit, Apache Ant).
- **Removed Publishing Block:** Deletes the entire `publishing { publications { ... } }` block for Maven.
**`build.gradle` (Root):**
- No functional changes identified in the provided diff snippet for the root `build.gradle` file, aside from a seemingly errant character 'A' in the dependencies block which is likely a typo in the diff.
This commit introduces Maven publishing configuration for the `core` module and updates the JitPack build command. In `core/build.gradle`: - An `afterEvaluate` block is added to configure a `MavenPublication` named `release`. - This publication will publish the `release` component. - The `groupId` is set to "com.github.Astro-bosss". - The `artifactId` is set to "core". - The `version` is dynamically set using the project property "version" or defaults to "1.0.0-SNAPSHOT". In `jitpack.yml`: - The `install` command is updated from `./gradlew clean build -x test -x lint` to `./gradlew clean :core:publishToMavenLocal -x test -x lint`. This change targets the `publishToMavenLocal` task specifically for the `core` module.
This commit introduces the following changes to the `build.gradle` file:
- **Dependency Update:**
- Upgrades `org.java-websocket:Java-WebSocket` from version `1.5.3` to `1.5.7`.
- **Publishing Configuration:**
- Introduces the modern Android Gradle Plugin (AGP) method for publishing by adding a `publishing` block within the `android` block.
- Configures `singleVariant('release')` to automatically publish the release variant along with its sources JAR using `withSourcesJar()`.
- Removes the custom `sourcesJar` task as its functionality is now handled by the AGP's `publishing` configuration.
- Within the `afterEvaluate { publishing { publications { release(MavenPublication) { ... } } } }` block:
- The explicit `artifact(sourcesJar)` line is removed because `from components.release` now automatically includes the sources JAR.
- Comments are updated to reflect that AGP's `publishing` block handles the AAR and sources JAR.
This commit introduces several changes to modernize the Gradle build scripts and adds a `pom.xml` file for the `core` module.
**Root `build.gradle`:**
- Migrates from the legacy `buildscript` and `allprojects` blocks to the modern `plugins` block for managing Gradle plugins.
**`settings.gradle`:**
- Introduces `pluginManagement` and `dependencyResolutionManagement` blocks for better control over plugin and dependency resolution.
- Adds `gradlePluginPortal()` to `pluginManagement.repositories`.
- Explicitly includes JitPack in `dependencyResolutionManagement.repositories`.
**`core/build.gradle`:**
- Replaces legacy plugin application (`apply plugin: ...`) with the `plugins` block.
- **Source Sets Configuration:**
- Defines custom source sets (`main`) to align with the project's existing directory structure:
- `manifest.srcFile 'AndroidManifest.xml'`
- `java.srcDirs = ['src']` (for both Java and Kotlin)
- `res.srcDirs = ['res']`
- `jniLibs.srcDirs = ['jniLibs']`
- `assets.srcDirs = ['assets']`
- **Packaging Options:**
- Adds `packagingOptions` to exclude specific `META-INF` files and `LICENSE.txt` to prevent build conflicts.
- **Dependency Changes:**
- Removes `implementation fileTree(dir: "libs", include: ["*.jar"])`.
- Adds `implementation 'androidx.mediarouter:mediarouter:1.6.0'`.
- Adds `implementation files('libs/lgcast-android-lib.jar')` to include a local JAR file.
- **Publishing:**
- Removes the Android Gradle Plugin's `publishing` block (`singleVariant('release') { withSourcesJar() }`).
- Modifies the `afterEvaluate { publishing { publications { release(MavenPublication) { ... } } } }` block:
- Re-adds `artifact(sourcesJar)` to explicitly include the sources JAR in the publication.
- Updates comments to reflect that `pom.xml` generation is handled by this block.
**New `pom.xml` (Root Directory):**
- Adds a `pom.xml` file for the `core` module.
- Sets `groupId` to `com.github.Astro-bosss`.
- Sets `artifactId` to `connect-sdk-android`.
- Sets `version` to `5.0.8`.
- Specifies `<sourceDirectory>core/src</sourceDirectory>`.
This commit refactors the `build.gradle` file to simplify source set definitions and updates the Apache HttpClient dependency.
- **Source Set Simplification:**
- The `sourceSets.main.java.srcDirs` is updated to solely use `['src']`, reflecting that all source code (Java and Kotlin) resides in this single directory.
- A comment indicating the previous, more complex file structure has been removed and replaced with one explaining the streamlined approach.
- **Dependency Update:**
- Replaces `org.apache.httpcomponents:httpclient-android:4.3.5.1` with the more modern and robust `cz.msebera.android:httpclient:4.4.1.2`.
- Adds `implementation fileTree(dir: "libs", include: ["*.jar"])` to include local JAR files from the `libs` directory.
- Removes the explicit `implementation files('libs/lgcast-android-lib.jar')` as it's now covered by the `fileTree` inclusion.
- **Packaging Options:**
- A comment explaining the purpose of `packagingOptions.resources.excludes` (preventing file conflicts) has been removed for brevity.
- **`sourcesJar` Task:**
- A comment is updated to reflect that sources are now directly taken from the `src` directory.
- **Publishing Configuration:**
- Comments within the `afterEvaluate { publishing { ... } }` block related to `artifact(sourcesJar)` and POM generation have been slightly adjusted for clarity, though the functional code remains the same.
This commit introduces several changes to the project's build scripts for better organization and updates a key dependency.
**Root `build.gradle`:**
- Comments are added to clarify that plugins are declared here with `apply false` for version management, and actual application happens in module-level `build.gradle` files.
**`settings.gradle`:**
- Comments are updated for clarity regarding the JitPack repository and the inclusion of the `core` module.
**`core/build.gradle`:**
- **Group ID:** The `group` property is set to `com.github.Astro-bosss` at the top level.
- **Source Sets:** Comments are updated to reflect that source sets are manually specified to align with the project's existing structure.
- **Packaging Options:** The `excludes` for resources in `packagingOptions` are consolidated into a single line.
- **Dependency Update:**
- `androidx.appcompat:appcompat` dependency is added with version `1.6.1`.
- **Publishing Configuration:**
- A comment is added to indicate that the `group` for the `release` publication will be read from the `group` property defined at the top of the file.
- **Comments:** Various comments are updated for clarity and to reflect the changes made.
- **Code Style:** Minor formatting adjustments are made for consistency.
This commit updates the Android Gradle Plugin (AGP) version and refactors the Apache HTTP Client integration.
**Build Script Changes (`build.gradle`):**
- Removes commented-out lines related to plugin application in the root `build.gradle` file.
- In `core/build.gradle`:
- Adds `useLibrary 'org.apache.http.legacy'` to enable the legacy Apache HTTP client.
- Removes the explicit dependency `cz.msebera.android:httpclient:4.4.1.2`.
**Manifest Changes (`core/AndroidManifest.xml`):**
- Adds `<uses-library android:name="org.apache.http.legacy" android:required="false" />` within the `<application>` tag to declare the use of the legacy Apache HTTP library.
**Code Changes (`core/src/com/connectsdk/core/Util.java`):**
- Minor formatting changes (trailing spaces) in import statements and method calls related to `InetAddressUtils`.
This commit introduces several improvements to the `build.gradle` file:
- **Apache HttpClient Integration:**
- Adds the `useLibrary 'org.apache.http.legacy'` directive to include the Apache HttpClient library directly, removing the need for an external dependency.
- **Source Set Configuration:**
- Updates the `sourceSets` configuration to correctly point to `core/src` for `java.srcDirs`, `res.srcDirs`, and `assets.srcDirs`. This resolves potential "duplicate path" warnings.
- **Modernized Publishing:**
- Implements the Android Gradle Plugin's (AGP) modern publishing mechanism by adding a `publishing` block within the `android` block.
- Configures `singleVariant('release')` with `withSourcesJar()` to automatically generate and include the sources JAR for the release variant.
- Removes the custom `sourcesJar` task as its functionality is now handled by the AGP's `publishing` configuration.
- In the `afterEvaluate { publishing { publications { release(MavenPublication) { ... } } } }` block:
- The explicit `artifact(sourcesJar)` line is removed because `from components.release` now automatically includes the sources JAR generated by the AGP `publishing` block.
- Comments are updated to reflect these changes.
- **Dependency Cleanup:**
- Removes the explicit dependency declaration for Apache HttpClient as it's now managed by `useLibrary`.
This commit updates the `libc++_shared.so` native library files for the following architectures: - `jniLibs/arm64-v8a/libc++_shared.so` - `jniLibs/armeabi-v7a/libc++_shared.so` The specific changes within the binary files are not detailed in this commit message.
This commit updates the `build.gradle` file to integrate modules and adjust dependencies.
- **Source Set Expansion:**
- The `sourceSets.main.java.srcDirs` is expanded to include source directories from external modules:
- `'../modules/google_cast/src'`
- `'../modules/firetv/src'`
- This allows the main project to access and compile code from these integrated modules.
- **Dependency Addition:**
- `implementation fileTree(dir: '../modules/firetv/libs', include: ['*.jar'])` is added to include JAR libraries from the `firetv` module.
- **Comment Removal:**
- Comments related to the `useLibrary 'org.apache.http.legacy'` directive, the previous source set configuration, and the AGP publishing mechanism for `sourcesJar` have been removed for conciseness.
- A comment explaining the removal of an external Apache HttpClient dependency is also removed.
@barissalihbabacan @dung2le Hi,
I copied the 16kb .so file, but it didn't work.
|
| Logger.print("executeStart"); | ||
| start(intent, connectionListener); | ||
| if (com.connectsdk.BuildConfig.DEBUG == true) AppUtil.showToastLong(this, "########## DEBUG version ##########"); | ||
| //if (com.connectsdk.BuildConfig.DEBUG == true) AppUtil.showToastLong(this, "########## DEBUG version ##########"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add
buildFeatures {
buildConfig true
}
to gradle
| private static final String HOSTNAME = "connectsdk"; | ||
|
|
||
| JmDNS jmdns; | ||
| JmDNS jmdns; /// Cannot resolve symbol 'JmDNS' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
implementation 'javax.jmdns:jmdns:3.4.1'
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Description
This PR addresses and resolves the critical issues discussed in #163.
It merges the recently updated 16KB page-aligned native libraries (from the upstream
master) with a fully modernized build system. This ensures the ConnectSDK Core is not only compatible with Android 15 (e.g., Pixel 9 devices) but also buildable out-of-the-box with the latest Android Studio versions.Key Changes
1. Android 15 & 16KB Page Size Support
libgstreamer_android.soandlibc++_shared.sobinaries forarm64-v8aand updates toMirroringServiceEvent.java.2. Modernization & Build Fixes
android.supportlibraries toAndroidXequivalents.namespacedeclarations inbuild.gradlefor compatibility with AGP 8.0+.Verification
I have verified this branch via a JitPack release (
v5.3.0on my fork).Related Issues
Fixes #163 (Build failures & Android 15 Crash)
Closes #166 (Implementation of the proposed fix)
This PR aims to provide a stable, "ready-to-use" baseline for the community moving forward.