Update gradle to 8.8.1

Update java to 17

Bug: 401200628

Test: manual
Change-Id: I4ace665b1c73507241cc63bf375d59e2f8f4d501
diff --git a/.gitignore b/.gitignore
index 52f75f1..804314f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,6 @@
 # Third party libraries:
 src/oboe
 include/oboe
+
+#Visual Code history
+.history
diff --git a/build.gradle b/build.gradle
index 8e3722b..42ab23a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -33,10 +33,10 @@
 buildscript {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.0'
+        classpath 'com.android.tools.build:gradle:8.8.1'
     }
 }
 
@@ -91,7 +91,7 @@
     buildDir = getOutPath()
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
 }
 
diff --git a/build.sh b/build.sh
index 251c35c..bc161c8 100755
--- a/build.sh
+++ b/build.sh
@@ -17,7 +17,28 @@
 export BUILDBOT_CMAKE=$(pwd)/../prebuilts/cmake/linux-x86
 export PATH="$PATH:$(pwd)/../prebuilts/ninja/linux-x86/"
 
-cp -Rf samples/sdk_licenses ../prebuilts/sdk/licenses
+if [ "$(uname)" == "Darwin" ]; then
+    : # Do nothing but skip the next condition so we don't get a bash warning on macos
+elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
+    # Do only for GNU/Linux platform
+    export JAVA_HOME=$(pwd)/../prebuilts/jdk/jdk17/linux-x86
+fi
+
+sdkmanager_path="$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager"
+
+if [ ! -f "$sdkmanager_path" ]; then
+    pushd $ANDROID_HOME
+    mkdir -p cmdline-tools/latest && \
+        curl -o cmdline-tools/latest/sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip && \
+        unzip cmdline-tools/latest/sdk-tools.zip -d cmdline-tools/latest && \
+        mv cmdline-tools/latest/cmdline-tools/* cmdline-tools/latest/ && \
+        rm -rf cmdline-tools/latest/cmdline-tools && \
+        rm cmdline-tools/latest/sdk-tools.zip
+    popd
+fi
+echo yes | $sdkmanager_path "platform-tools" "platforms;android-35" "platforms;android-31" "build-tools;35.0.0"
+
+# cp -Rf samples/sdk_licenses ../prebuilts/sdk/licenses
 
 # Use the distribution path given to the script by the build bot in DIST_DIR. Otherwise,
 # build in the default location.
@@ -28,13 +49,6 @@
     dist_dir=$DIST_DIR
 fi
 
-if [ "$(uname)" == "Darwin" ]; then
-    : # Do nothing but skip the next condition so we don't get a bash warning on macos
-elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
-    # Do only for GNU/Linux platform
-    export JAVA_HOME=$(pwd)/../prebuilts/jdk/jdk11/linux-x86
-fi
-
 ## Build the Game SDK distribution zip and the zips for Maven AARs
 if [[ $1 == "full" ]]
 then
@@ -82,7 +96,6 @@
     ./gradlew packageMavenZip -Plibraries=memory_advice   -PdistPath="$dist_dir" -PpackageName=$package_name
     ./gradlew jetpadJson -Plibraries=swappy,tuningfork,game_activity,game_text_input,paddleboat,memory_advice -PdistPath="$dist_dir" -PpackageName=$package_name
 fi
-
 if [[ $1 != "maven-only" ]]
 then
     mkdir -p "$dist_dir/$package_name/apks/samples"
@@ -93,6 +106,7 @@
     pushd ./samples/tuningfork/insightsdemo/
     ./gradlew ":app:assembleDebug"
     popd
+
     pushd ./samples/tuningfork/experimentsdemo/
     ./gradlew ":app:assembleDebug"
     popd
@@ -106,6 +120,7 @@
     pushd samples/bouncyball
     ./gradlew ":app:assembleDebug"
     popd
+
     pushd third_party/cube
     ./gradlew ":app:assembleDebug"
     popd
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index ec5f7e8..2b4443c 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -35,7 +35,7 @@
 }
 
 // Ktlint tasks:
-val ktlintOutputDir = "${project.buildDir}/reports/ktlint/"
+val ktlintOutputDir = "${project.layout.buildDirectory}/reports/ktlint/"
 val ktlintInputFiles = project.fileTree(mapOf("dir" to "src", "include" to "**/*.kt"))
 
 val ktlintCheck by tasks.creating(JavaExec::class) {
@@ -44,7 +44,7 @@
 
     description = "Check Kotlin code style."
     classpath = ktlint
-    main = "com.pinterest.ktlint.Main"
+    mainClass.set("com.pinterest.ktlint.Main")
     args = listOf("src/**/*.kt")
 }
 
@@ -54,6 +54,6 @@
 
     description = "Fix Kotlin code style deviations."
     classpath = ktlint
-    main = "com.pinterest.ktlint.Main"
+    mainClass.set("com.pinterest.ktlint.Main")
     args = listOf("-F", "src/**/*.kt")
 }
diff --git a/game-activity/build.gradle b/game-activity/build.gradle
index 4c2d9ad..81d96f3 100644
--- a/game-activity/build.gradle
+++ b/game-activity/build.gradle
@@ -5,10 +5,12 @@
 buildDir = "../../out_game_activity"
 
 android {
-    compileSdkVersion 31
+    namespace "com.google.androidgamesdk.gameactivity"
+    compileSdk 31
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
-        minSdkVersion 19
+        minSdkVersion 21
         targetSdkVersion 35
         versionCode 1
         versionName "1.0"
diff --git a/game-activity/src/main/AndroidManifest.xml b/game-activity/src/main/AndroidManifest.xml
index 1d0cd1d..a5918e6 100644
--- a/game-activity/src/main/AndroidManifest.xml
+++ b/game-activity/src/main/AndroidManifest.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.google.androidgamesdk">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
 </manifest>
\ No newline at end of file
diff --git a/game-text-input/build.gradle b/game-text-input/build.gradle
index 7a5f792..0442154 100644
--- a/game-text-input/build.gradle
+++ b/game-text-input/build.gradle
@@ -2,16 +2,16 @@
     id 'com.android.library'
 }
 
-def buildTest =  gradle.startParameter.taskNames.join(' ').contains('connectedAndroidTest')
-
 buildDir="../../out_game_text_input"
 
 android {
-    compileSdkVersion 31
+    namespace "com.google.androidgamesdk.gametextinput"
+    compileSdk 35
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
-        minSdkVersion 19
-        targetSdkVersion (buildTest ? 33 : 35)
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.0"
 
@@ -78,18 +78,15 @@
 }
 
 dependencies {
-    implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation 'androidx.core:core:1.5.0'
-    implementation 'com.google.android.material:material:1.1.0'
 
-    if (buildTest) {
-        implementation 'androidx.test.ext:junit-gtest:1.0.0-alpha01'
-        implementation 'com.android.ndk.thirdparty:googletest:1.11.0-beta-1'
-
-        testImplementation 'junit:junit:4.13.2'
-        androidTestImplementation 'androidx.test.ext:junit:1.1.3'
-        androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
-
-        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
-    }
+    androidTestImplementation 'androidx.appcompat:appcompat:1.7.0'
+    androidTestImplementation 'com.google.android.material:material:1.12.0'
+    androidTestImplementation 'androidx.test.ext:junit-gtest:1.0.0-alpha02'
+    androidTestImplementation 'androidx.activity:activity:1.10.1'
+    androidTestImplementation 'com.android.ndk.thirdparty:googletest:1.11.0-beta-1'
+    androidTestImplementation 'junit:junit:4.13.2'
+    androidTestImplementation 'androidx.test.ext:junit:1.2.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
+    androidTestImplementation 'com.google.guava:guava:33.4.0-android'
 }
diff --git a/game-text-input/src/androidTest/AndroidManifest.xml b/game-text-input/src/androidTest/AndroidManifest.xml
index d9ba211..2696ad3 100644
--- a/game-text-input/src/androidTest/AndroidManifest.xml
+++ b/game-text-input/src/androidTest/AndroidManifest.xml
@@ -1,26 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-  package="com.google.androidgamesdk.gametextinput">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
     <instrumentation android:targetPackage="com.google.androidgamesdk.gametextinput.test"
-                     android:name="androidx.test.runner.AndroidJUnitRunner"/>
+        android:name="androidx.test.runner.AndroidJUnitRunner"/>
 
-    <!-- <application
-        android:label="@string/app_name"
-        android:theme="@style/Theme.GameTextInputTest"
-    > -->
     <application
         android:label="@string/app_name"
         android:theme="@style/Theme.GameTextInputTest"
-      >
+        >
         <activity android:name=".MainActivity"
             android:exported="true"
-          >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
+            >
         </activity>
     </application>
 
diff --git a/game-text-input/src/main/AndroidManifest.xml b/game-text-input/src/main/AndroidManifest.xml
index 768ab5b..a5918e6 100644
--- a/game-text-input/src/main/AndroidManifest.xml
+++ b/game-text-input/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest package="com.google.androidgamesdk.gametextinput">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
 </manifest>
\ No newline at end of file
diff --git a/games-controller/build.gradle b/games-controller/build.gradle
index dd34e31..0b04259 100644
--- a/games-controller/build.gradle
+++ b/games-controller/build.gradle
@@ -25,10 +25,12 @@
 
 android {
     namespace 'com.google.android.games.paddleboat'
+    compileSdk 31
+    ndkVersion "23.1.7779620"
+
     defaultConfig {
-        minSdkVersion 19
-        compileSdkVersion 31
-        targetSdkVersion 35
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.1"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/games-frame-pacing/build.gradle b/games-frame-pacing/build.gradle
index 0b8a9d9..de2857a 100644
--- a/games-frame-pacing/build.gradle
+++ b/games-frame-pacing/build.gradle
@@ -25,11 +25,11 @@
 
 android {
     namespace 'com.google.androidgamesdk.swappy'
-
+    compileSdk 31
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
-        minSdkVersion 19
-        compileSdkVersion 31
+        minSdkVersion 21
         targetSdkVersion 35
         versionCode 1
         versionName "1.1"
diff --git a/games-frame-pacing/extras/build.gradle b/games-frame-pacing/extras/build.gradle
index e9e0d89..38e2d93 100644
--- a/games-frame-pacing/extras/build.gradle
+++ b/games-frame-pacing/extras/build.gradle
@@ -4,10 +4,11 @@
 buildDir="./out"
 
 android {
-    compileSdkVersion 31
+    namespace 'com.google.androidgamesdk.swappy.extras'
+    compileSdk 31
     defaultConfig {
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/games-frame-pacing/extras/src/main/AndroidManifest.xml b/games-frame-pacing/extras/src/main/AndroidManifest.xml
index b871b99..a2f47b6 100644
--- a/games-frame-pacing/extras/src/main/AndroidManifest.xml
+++ b/games-frame-pacing/extras/src/main/AndroidManifest.xml
@@ -1,3 +1,2 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.google.androidgamesdk">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 </manifest>
diff --git a/games-frame-pacing/src/main/AndroidManifest.xml b/games-frame-pacing/src/main/AndroidManifest.xml
index e77f3c9..9a40236 100644
--- a/games-frame-pacing/src/main/AndroidManifest.xml
+++ b/games-frame-pacing/src/main/AndroidManifest.xml
@@ -1,4 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="androidx.games" >
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 </manifest>
diff --git a/games-memory-advice/build.gradle b/games-memory-advice/build.gradle
index 4eeb050..3d1bb3a 100644
--- a/games-memory-advice/build.gradle
+++ b/games-memory-advice/build.gradle
@@ -21,9 +21,12 @@
 buildDir="../../out_memory_advice"
 
 android {
+    namespace 'com.google.androidgamesdk.memory_advice'
+    compileSdk 31
+    ndkVersion "23.1.7779620"
+
     defaultConfig {
-        minSdkVersion 19
-        compileSdkVersion 31
+        minSdkVersion 21
         targetSdkVersion 35
         versionCode 1
         versionName "1.1"
diff --git a/games-memory-advice/src/main/AndroidManifest.xml b/games-memory-advice/src/main/AndroidManifest.xml
index 146a71a..4280ce3 100644
--- a/games-memory-advice/src/main/AndroidManifest.xml
+++ b/games-memory-advice/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.google.android.games.memory_advice">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
   <uses-permission android:name="android.permission.VIBRATE" />
 </manifest>
diff --git a/games-performance-tuner/build.gradle b/games-performance-tuner/build.gradle
index bc2391c..5d087d9 100644
--- a/games-performance-tuner/build.gradle
+++ b/games-performance-tuner/build.gradle
@@ -21,9 +21,12 @@
 buildDir="../../out_tuningfork"
 
 android {
+    namespace 'com.google.androidgamesdk.tuningfork'
+    compileSdk 31
+    ndkVersion "23.1.7779620"
+
     defaultConfig {
-        minSdkVersion 19
-        compileSdkVersion 31
+        minSdkVersion 21
         targetSdkVersion 35
         versionCode 1
         versionName "1.1"
diff --git a/games-performance-tuner/src/main/AndroidManifest.xml b/games-performance-tuner/src/main/AndroidManifest.xml
index fef41a5..2d915ee 100644
--- a/games-performance-tuner/src/main/AndroidManifest.xml
+++ b/games-performance-tuner/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.google.android.games.tuningfork">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
     <uses-permission android:name="android.permission.VIBRATE" />
 </manifest>
\ No newline at end of file
diff --git a/games-performance-tuner/tools/TuningForkMonitor/app/build.gradle b/games-performance-tuner/tools/TuningForkMonitor/app/build.gradle
index 1b5f199..ad22371 100644
--- a/games-performance-tuner/tools/TuningForkMonitor/app/build.gradle
+++ b/games-performance-tuner/tools/TuningForkMonitor/app/build.gradle
@@ -6,7 +6,9 @@
 
 android {
     namespace 'com.google.tfmonitor'
-    compileSdk 34
+    compileSdk 35
+    ndkVersion "23.1.7779620"
+
     defaultConfig {
         applicationId "com.google.tfmonitor"
         minSdk 21
diff --git a/games-performance-tuner/tools/TuningForkMonitor/build.gradle b/games-performance-tuner/tools/TuningForkMonitor/build.gradle
index 1ffc8d3..e5927be 100644
--- a/games-performance-tuner/tools/TuningForkMonitor/build.gradle
+++ b/games-performance-tuner/tools/TuningForkMonitor/build.gradle
@@ -7,7 +7,7 @@
         gradlePluginPortal()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
diff --git a/games-performance-tuner/tools/validation/build.gradle b/games-performance-tuner/tools/validation/build.gradle
index 2962a49..6e41e22 100644
--- a/games-performance-tuner/tools/validation/build.gradle
+++ b/games-performance-tuner/tools/validation/build.gradle
@@ -4,7 +4,6 @@
 repositories {
     mavenCentral()
     google()
-    jcenter()
 }
 
 sourceSets {
@@ -52,7 +51,7 @@
             'Implementation-Version': 1.0,
             'Main-Class': 'com.google.tuningfork.validation.TuningforkApkValidationTool'
     }
-    baseName = 'TuningforkApkValidationTool'
+    archiveBaseName = 'TuningforkApkValidationTool'
     from {
         configurations.runtimeClasspath.collect {
             it.isDirectory()? it:zipTree(it)
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index f2c2436..cc2eebd 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Fri Nov 22 11:41:36 CET 2019
+#Tue Feb 25 13:30:30 GMT 2025
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
+zipStoreBase=GRADLE_USER_HOME
diff --git a/samples/agdktunnel/app/build.gradle b/samples/agdktunnel/app/build.gradle
index 7f2f3dd..4d94f98 100644
--- a/samples/agdktunnel/app/build.gradle
+++ b/samples/agdktunnel/app/build.gradle
@@ -27,13 +27,14 @@
 def playcoreDir = file('libs/play-core-native-sdk')
 
 android {
-    compileSdkVersion 30
+    namespace 'com.google.sample.agdktunnel'
+    compileSdk 31
     ndkVersion '23.1.7779620'
 
     defaultConfig {
         applicationId 'com.google.sample.agdktunnel'
-        minSdkVersion 24
-        targetSdkVersion 35
+        minSdk          24
+        targetSdk       35
         versionCode     1
         versionName    '1.0.3'
 
diff --git a/samples/agdktunnel/app/src/main/AndroidManifest.xml b/samples/agdktunnel/app/src/main/AndroidManifest.xml
index 4574cea..9b7ecc9 100644
--- a/samples/agdktunnel/app/src/main/AndroidManifest.xml
+++ b/samples/agdktunnel/app/src/main/AndroidManifest.xml
@@ -19,8 +19,7 @@
      be able to communicate with the Tuning Fork Monitor app when
      running a debug build. -->
 
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.google.sample.agdktunnel">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
 
   <application
       android:allowBackup="false"
diff --git a/samples/agdktunnel/build.gradle b/samples/agdktunnel/build.gradle
index 1d5f8a4..e05fd49 100644
--- a/samples/agdktunnel/build.gradle
+++ b/samples/agdktunnel/build.gradle
@@ -22,7 +22,7 @@
        mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.4.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
     }
 }
 
diff --git a/samples/agdktunnel/gradle/wrapper/gradle-wrapper.properties b/samples/agdktunnel/gradle/wrapper/gradle-wrapper.properties
index f65a59b..a56369f 100644
--- a/samples/agdktunnel/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/agdktunnel/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
\ No newline at end of file
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
diff --git a/samples/bouncyball/app/build.gradle b/samples/bouncyball/app/build.gradle
index 7e57c2a..618f6f9 100644
--- a/samples/bouncyball/app/build.gradle
+++ b/samples/bouncyball/app/build.gradle
@@ -1,17 +1,20 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 31
+    namespace "com.prefabulated.bouncyball"
+    compileSdk 31
     ndkVersion "23.1.7779620"
+
     defaultConfig {
         applicationId "com.prefabulated.swappy"
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk      21
+        targetSdk   35
         versionCode 4
         versionName "1.1.2"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         externalNativeBuild {
             cmake {
+                arguments '-DANDROID_STL=c++_shared'
             }
         }
     }
diff --git a/samples/bouncyball/app/src/main/AndroidManifest.xml b/samples/bouncyball/app/src/main/AndroidManifest.xml
index 711cac4..1ccd13f 100644
--- a/samples/bouncyball/app/src/main/AndroidManifest.xml
+++ b/samples/bouncyball/app/src/main/AndroidManifest.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.prefabulated.bouncyball">
+    xmlns:tools="http://schemas.android.com/tools">
     <application
         android:allowBackup="false"
         android:extractNativeLibs="true"
diff --git a/samples/bouncyball/build.gradle b/samples/bouncyball/build.gradle
index d6751df..8a45c28 100644
--- a/samples/bouncyball/build.gradle
+++ b/samples/bouncyball/build.gradle
@@ -6,7 +6,7 @@
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
diff --git a/samples/game_controller/gameactivity/app/build.gradle b/samples/game_controller/gameactivity/app/build.gradle
index 9dbe30b..ac8e02b 100644
--- a/samples/game_controller/gameactivity/app/build.gradle
+++ b/samples/game_controller/gameactivity/app/build.gradle
@@ -17,13 +17,14 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 31
-    ndkVersion '21.4.7075529'
+    namespace "com.google.android.games.paddleboat.gamecontrollersample"
+    compileSdk 31
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
         applicationId 'com.google.android.games.paddleboat.gamecontrollersample'
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk          21
+        targetSdk       35
         versionCode     2
         versionName    '1.1'
         externalNativeBuild {
diff --git a/samples/game_controller/gameactivity/app/src/main/AndroidManifest.xml b/samples/game_controller/gameactivity/app/src/main/AndroidManifest.xml
index 54d96c1..b4e911b 100644
--- a/samples/game_controller/gameactivity/app/src/main/AndroidManifest.xml
+++ b/samples/game_controller/gameactivity/app/src/main/AndroidManifest.xml
@@ -17,8 +17,7 @@
 
 <!-- TODO: when building this sample, replace the package name below
      (com.google.example.games.tunnel) by your own package name -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.google.android.games.paddleboat.gamecontrollersample">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
 
   <application
       android:allowBackup="false"
diff --git a/samples/game_controller/gameactivity/build.gradle b/samples/game_controller/gameactivity/build.gradle
index b9ff2a3..e7f214a 100644
--- a/samples/game_controller/gameactivity/build.gradle
+++ b/samples/game_controller/gameactivity/build.gradle
@@ -22,7 +22,7 @@
        mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
     }
 }
 
diff --git a/samples/game_controller/gameactivity/gradle/wrapper/gradle-wrapper.properties b/samples/game_controller/gameactivity/gradle/wrapper/gradle-wrapper.properties
index 8f1bae9..e8407b7 100644
--- a/samples/game_controller/gameactivity/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/game_controller/gameactivity/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
diff --git a/samples/game_controller/nativeactivity/app/build.gradle b/samples/game_controller/nativeactivity/app/build.gradle
index cf1559a..d4792a8 100644
--- a/samples/game_controller/nativeactivity/app/build.gradle
+++ b/samples/game_controller/nativeactivity/app/build.gradle
@@ -17,13 +17,14 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 31
-    ndkVersion '21.4.7075529'
+    namespace "com.google.android.games.paddleboat.gamecontrollersample"
+    compileSdk 31
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
         applicationId 'com.google.android.games.paddleboat.gamecontrollersample'
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk          21
+        targetSdk       35
         versionCode     2
         versionName    '1.1'
         externalNativeBuild {
diff --git a/samples/game_controller/nativeactivity/app/src/main/AndroidManifest.xml b/samples/game_controller/nativeactivity/app/src/main/AndroidManifest.xml
index 5ba7d69..51ca0eb 100644
--- a/samples/game_controller/nativeactivity/app/src/main/AndroidManifest.xml
+++ b/samples/game_controller/nativeactivity/app/src/main/AndroidManifest.xml
@@ -17,8 +17,7 @@
 
 <!-- TODO: when building this sample, replace the package name below
      (com.google.example.games.tunnel) by your own package name -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.google.android.games.paddleboat.gamecontrollersample">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
 
   <application
       android:allowBackup="false"
diff --git a/samples/game_controller/nativeactivity/build.gradle b/samples/game_controller/nativeactivity/build.gradle
index 96172f2..5eb3913 100644
--- a/samples/game_controller/nativeactivity/build.gradle
+++ b/samples/game_controller/nativeactivity/build.gradle
@@ -21,7 +21,7 @@
        mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
     }
 }
 
diff --git a/samples/game_controller/nativeactivity/gradle/wrapper/gradle-wrapper.properties b/samples/game_controller/nativeactivity/gradle/wrapper/gradle-wrapper.properties
index 8f1bae9..e8407b7 100644
--- a/samples/game_controller/nativeactivity/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/game_controller/nativeactivity/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
diff --git a/samples/game_text_input/game_text_input_testbed/app/build.gradle b/samples/game_text_input/game_text_input_testbed/app/build.gradle
index 874aead..e4ed695 100644
--- a/samples/game_text_input/game_text_input_testbed/app/build.gradle
+++ b/samples/game_text_input/game_text_input_testbed/app/build.gradle
@@ -3,16 +3,16 @@
 }
 
 android {
-    compileSdkVersion 33
+    namespace "com.gametextinput.testbed"
+    compileSdk 31
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
         applicationId "com.gametextinput.testbed"
-        minSdkVersion 19
-        targetSdkVersion 33
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.0"
-
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
 
     buildTypes {
@@ -33,6 +33,7 @@
     buildFeatures {
         prefab true
     }
+    namespace 'com.gametextinput.testbed'
 }
 
 dependencies {
@@ -41,11 +42,6 @@
     implementation 'com.google.android.material:material:1.3.0'
     implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
 
-    // Uncomment the line below (implementation fileTree...)
-    // and comment out the "implementation project(":*")" lines
-    // to use a locally built .aar
-    // See ../settings.gradle as well.
-    //implementation fileTree(dir: '../../../../', include: ['game-text-input-release.aar'])
-
+//    implementation 'androidx.games:games-text-input:4.0.0'
     implementation project(":game-text-input")
 }
diff --git a/samples/game_text_input/game_text_input_testbed/app/src/main/AndroidManifest.xml b/samples/game_text_input/game_text_input_testbed/app/src/main/AndroidManifest.xml
index fd32d57..b948667 100644
--- a/samples/game_text_input/game_text_input_testbed/app/src/main/AndroidManifest.xml
+++ b/samples/game_text_input/game_text_input_testbed/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.gametextinput.testbed">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
 
     <application
         android:allowBackup="true"
diff --git a/samples/game_text_input/game_text_input_testbed/build.gradle b/samples/game_text_input/game_text_input_testbed/build.gradle
index 7be1929..611ed56 100644
--- a/samples/game_text_input/game_text_input_testbed/build.gradle
+++ b/samples/game_text_input/game_text_input_testbed/build.gradle
@@ -2,10 +2,10 @@
 buildscript {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
     dependencies {
-        classpath "com.android.tools.build:gradle:7.2.2"
+        classpath 'com.android.tools.build:gradle:8.8.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -15,7 +15,7 @@
 allprojects {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
 }
 
diff --git a/samples/game_text_input/game_text_input_testbed/gradle.properties b/samples/game_text_input/game_text_input_testbed/gradle.properties
index 01b80d7..ac1c36f 100644
--- a/samples/game_text_input/game_text_input_testbed/gradle.properties
+++ b/samples/game_text_input/game_text_input_testbed/gradle.properties
@@ -17,3 +17,5 @@
 android.useAndroidX=true
 # Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
+android.nonTransitiveRClass=false
+android.nonFinalResIds=false
diff --git a/samples/game_text_input/game_text_input_testbed/gradle/wrapper/gradle-wrapper.properties b/samples/game_text_input/game_text_input_testbed/gradle/wrapper/gradle-wrapper.properties
index f74b3ad..d8d2fc1 100644
--- a/samples/game_text_input/game_text_input_testbed/gradle/wrapper/gradle-wrapper.properties
+++ b/samples/game_text_input/game_text_input_testbed/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
diff --git a/samples/memory_advice/hogger/app/build.gradle b/samples/memory_advice/hogger/app/build.gradle
index 9fd6e39..e13c7f9 100644
--- a/samples/memory_advice/hogger/app/build.gradle
+++ b/samples/memory_advice/hogger/app/build.gradle
@@ -3,13 +3,14 @@
 }
 
 android {
-    compileSdkVersion 29
-    ndkVersion "21.4.7075529"
+    namespace "com.memory_advice.hogger"
+    compileSdk 31
+    ndkVersion "23.1.7779620"
 
     defaultConfig {
         applicationId "com.memory_advice.hogger"
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk      21
+        targetSdk   35
         versionCode 17
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/samples/memory_advice/hogger/app/src/main/AndroidManifest.xml b/samples/memory_advice/hogger/app/src/main/AndroidManifest.xml
index 769605d..02dd01b 100644
--- a/samples/memory_advice/hogger/app/src/main/AndroidManifest.xml
+++ b/samples/memory_advice/hogger/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.memory_advice.hogger">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
 
     <application
         android:allowBackup="true"
diff --git a/samples/memory_advice/hogger/build.gradle b/samples/memory_advice/hogger/build.gradle
index ead751a..b22ac84 100644
--- a/samples/memory_advice/hogger/build.gradle
+++ b/samples/memory_advice/hogger/build.gradle
@@ -4,10 +4,10 @@
 
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -17,7 +17,7 @@
 allprojects {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
 }
 
diff --git a/samples/memory_advice/java_lib_sample/app/build.gradle b/samples/memory_advice/java_lib_sample/app/build.gradle
index 7719ef6..e8407d5 100644
--- a/samples/memory_advice/java_lib_sample/app/build.gradle
+++ b/samples/memory_advice/java_lib_sample/app/build.gradle
@@ -1,13 +1,12 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 29
-    buildToolsVersion "29.0.2"
+    compileSdk 31
 
     defaultConfig {
         applicationId "com.google.android.apps.internal.games.memoryadvice_exampleclient"
-        minSdkVersion 21
-        targetSdkVersion 35
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.0"
     }
diff --git a/samples/sdk_licenses/android-sdk-license b/samples/sdk_licenses/android-sdk-license
deleted file mode 100644
index 92bda9a..0000000
--- a/samples/sdk_licenses/android-sdk-license
+++ /dev/null
@@ -1,3 +0,0 @@
-
-d56f5187479451eabf01fb78af6dfcb131a6481e
-24333f8a63b6825ea9c5514f83c2829b004d1fee
\ No newline at end of file
diff --git a/samples/sdk_licenses/android-sdk-preview-license b/samples/sdk_licenses/android-sdk-preview-license
deleted file mode 100644
index da4552d..0000000
--- a/samples/sdk_licenses/android-sdk-preview-license
+++ /dev/null
@@ -1,2 +0,0 @@
-
-84831b9409646a918e30573bab4c9c91346d8abd
\ No newline at end of file
diff --git a/samples/tuningfork/experimentsdemo/app/build.gradle b/samples/tuningfork/experimentsdemo/app/build.gradle
index 8772106..e9bda6d 100644
--- a/samples/tuningfork/experimentsdemo/app/build.gradle
+++ b/samples/tuningfork/experimentsdemo/app/build.gradle
@@ -3,17 +3,20 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 28
-    ndkVersion "20.0.5594570"
+    namespace "com.tuningfork.experimentsdemo"
+    compileSdk 31
+    ndkVersion "23.1.7779620"
+
     defaultConfig {
         applicationId "com.tuningfork.experimentsdemo"
-        minSdkVersion 19
+        minSdkVersion 21
         targetSdkVersion 35
         versionCode 17
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         externalNativeBuild {
             cmake {
+                arguments '-DANDROID_STL=c++_shared'
             }
         }
     }
diff --git a/samples/tuningfork/experimentsdemo/app/src/main/AndroidManifest.xml b/samples/tuningfork/experimentsdemo/app/src/main/AndroidManifest.xml
index 4cf4c72..a7a73ad 100644
--- a/samples/tuningfork/experimentsdemo/app/src/main/AndroidManifest.xml
+++ b/samples/tuningfork/experimentsdemo/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.tuningfork.experimentsdemo">
+    xmlns:tools="http://schemas.android.com/tools">
 
     <application
         android:allowBackup="true"
diff --git a/samples/tuningfork/experimentsdemo/build.gradle b/samples/tuningfork/experimentsdemo/build.gradle
index ead751a..b22ac84 100644
--- a/samples/tuningfork/experimentsdemo/build.gradle
+++ b/samples/tuningfork/experimentsdemo/build.gradle
@@ -4,10 +4,10 @@
 
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -17,7 +17,7 @@
 allprojects {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
 }
 
diff --git a/samples/tuningfork/insightsdemo/app/build.gradle b/samples/tuningfork/insightsdemo/app/build.gradle
index 0234644..7e3435f 100644
--- a/samples/tuningfork/insightsdemo/app/build.gradle
+++ b/samples/tuningfork/insightsdemo/app/build.gradle
@@ -2,15 +2,17 @@
 
 apply plugin: 'com.android.application'
 
-def stlType = 'c++_static'
+def stlType = 'c++_shared'
 
 android {
-    compileSdkVersion 31
+    namespace "com.tuningfork.insightsdemo"
+    compileSdk 31
     ndkVersion '23.1.7779620'
+
     defaultConfig {
         applicationId "com.tuningfork.insightsdemo"
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk 21
+        targetSdk 35
         versionCode 31
         versionName "1.0.2"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/samples/tuningfork/insightsdemo/app/src/main/AndroidManifest.xml b/samples/tuningfork/insightsdemo/app/src/main/AndroidManifest.xml
index 375ac9f..2a4c271 100644
--- a/samples/tuningfork/insightsdemo/app/src/main/AndroidManifest.xml
+++ b/samples/tuningfork/insightsdemo/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="com.tuningfork.insightsdemo">
+    xmlns:tools="http://schemas.android.com/tools">
 
     <application
         android:allowBackup="true"
diff --git a/samples/tuningfork/insightsdemo/build.gradle b/samples/tuningfork/insightsdemo/build.gradle
index 3b98696..b22ac84 100644
--- a/samples/tuningfork/insightsdemo/build.gradle
+++ b/samples/tuningfork/insightsdemo/build.gradle
@@ -7,7 +7,7 @@
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath 'com.android.tools.build:gradle:8.8.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
diff --git a/src/AndroidManifest.xml b/src/AndroidManifest.xml
index 78b6d34..3e30b0d 100644
--- a/src/AndroidManifest.xml
+++ b/src/AndroidManifest.xml
@@ -1,3 +1,3 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="androidx.games" android:versionCode="1" android:versionName="1.0">
-	<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="29"/>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0">
+	<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/>
 </manifest>
diff --git a/test/memory_advice/crowdtester/settings.gradle b/test/memory_advice/crowdtester/settings.gradle
index 74bd109..8b169d4 100644
--- a/test/memory_advice/crowdtester/settings.gradle
+++ b/test/memory_advice/crowdtester/settings.gradle
@@ -3,7 +3,6 @@
     repositories {
         google()
         mavenCentral()
-        jcenter() // Warning: this repository is going to shut down soon
     }
 }
 rootProject.name = "Memory Tester"
diff --git a/test/memory_advice/testapp/app/build.gradle b/test/memory_advice/testapp/app/build.gradle
index bc4bb6e..2fe588c 100644
--- a/test/memory_advice/testapp/app/build.gradle
+++ b/test/memory_advice/testapp/app/build.gradle
@@ -1,11 +1,11 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 29
+    compileSdk 31
     defaultConfig {
         applicationId "com.memory_advice.testapp"
-        minSdkVersion 15
-        targetSdkVersion 35
+        minSdk 15
+        targetSdk 35
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/test/memory_advice/testapp/build.gradle b/test/memory_advice/testapp/build.gradle
index 35abed4..cec5e4c 100644
--- a/test/memory_advice/testapp/build.gradle
+++ b/test/memory_advice/testapp/build.gradle
@@ -3,7 +3,7 @@
 buildscript {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
 
     }
     dependencies {
@@ -17,8 +17,7 @@
 allprojects {
     repositories {
         google()
-        jcenter()
-
+        mavenCentral()
     }
 }
 
diff --git a/test/swappy/testapp/app/build.gradle b/test/swappy/testapp/app/build.gradle
index 76ca760..1954784 100644
--- a/test/swappy/testapp/app/build.gradle
+++ b/test/swappy/testapp/app/build.gradle
@@ -1,11 +1,11 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 31
+    compileSdk 31
     defaultConfig {
         applicationId "com.swappy.testapp"
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -36,8 +36,8 @@
         }
     }
     compileOptions {
-        sourceCompatibility = 1.8
-        targetCompatibility = 1.8
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
     }
     buildFeatures {
         prefab true
diff --git a/test/tuningfork/metrics/app/build.gradle b/test/tuningfork/metrics/app/build.gradle
index c8a4e78..a6038b1 100644
--- a/test/tuningfork/metrics/app/build.gradle
+++ b/test/tuningfork/metrics/app/build.gradle
@@ -3,7 +3,7 @@
 apply plugin: 'kotlin-android-extensions'
 
 android {
-    compileSdkVersion 30
+    compileSdk 31
     buildToolsVersion "30.0.0"
 
     defaultConfig {
diff --git a/test/tuningfork/metrics/build.gradle b/test/tuningfork/metrics/build.gradle
index c5d45c1..847008e 100644
--- a/test/tuningfork/metrics/build.gradle
+++ b/test/tuningfork/metrics/build.gradle
@@ -3,7 +3,7 @@
     ext.kotlin_version = "1.3.72"
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
     dependencies {
         classpath "com.android.tools.build:gradle:4.2.2"
@@ -17,7 +17,7 @@
 allprojects {
     repositories {
         google()
-        jcenter()
+        mavenCentral()
     }
 }
 
diff --git a/test/tuningfork/testapp/app/build.gradle b/test/tuningfork/testapp/app/build.gradle
index 2cf371e..a8e64ed 100644
--- a/test/tuningfork/testapp/app/build.gradle
+++ b/test/tuningfork/testapp/app/build.gradle
@@ -1,11 +1,11 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 31
+    compileSdk 31
     defaultConfig {
         applicationId "com.tuningfork.testapp"
-        minSdkVersion 19
-        targetSdkVersion 35
+        minSdk 21
+        targetSdk 35
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/test/tuningfork/testapp/build.gradle b/test/tuningfork/testapp/build.gradle
index f817a65..cd5054f 100644
--- a/test/tuningfork/testapp/build.gradle
+++ b/test/tuningfork/testapp/build.gradle
@@ -3,12 +3,11 @@
 buildscript {
     repositories {
         google()
-        jcenter()
-        
+        mavenCentral()
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:7.2.2'
-        
+
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
@@ -17,8 +16,7 @@
 allprojects {
     repositories {
         google()
-        jcenter()
-        
+        mavenCentral()
     }
 }
 
diff --git a/third_party/cube/app/build.gradle b/third_party/cube/app/build.gradle
index 3bccaaf..ea09c45 100644
--- a/third_party/cube/app/build.gradle
+++ b/third_party/cube/app/build.gradle
@@ -18,16 +18,17 @@
 
 apply plugin: 'com.android.application'
 
-def stlType = 'c++_static'
+def stlType = 'c++_shared'
 
 android {
-    compileSdkVersion  31
+    namespace "com.samples.cube"
+    compileSdk  31
     ndkVersion "23.1.7779620"
 
     defaultConfig {
         applicationId 'com.samples.cube'
-        minSdkVersion    24 // Official vulkan support starts in version 24
-        targetSdkVersion 35
+        minSdk    24 // Official vulkan support starts in version 24
+        targetSdk 35
         versionCode  2
         versionName '0.0.2'
         externalNativeBuild {
@@ -53,6 +54,7 @@
     }
     buildFeatures {
         prefab true
+        buildConfig true
     }
 }
 
diff --git a/third_party/cube/app/src/main/AndroidManifest.xml b/third_party/cube/app/src/main/AndroidManifest.xml
index 0eea6a0..c4c3e32 100644
--- a/third_party/cube/app/src/main/AndroidManifest.xml
+++ b/third_party/cube/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.samples.cube">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
 
 <application android:label="@string/app_name"
             android:theme="@style/AppTheme">
diff --git a/third_party/cube/build.gradle b/third_party/cube/build.gradle
index d6751df..997e0ef 100644
--- a/third_party/cube/build.gradle
+++ b/third_party/cube/build.gradle
@@ -6,9 +6,7 @@
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.2.2'
-        // NOTE: Do not place your application dependencies here; they belong
-        // in the individual module build.gradle files
+        classpath 'com.android.tools.build:gradle:8.8.1'
     }
 }
 
diff --git a/third_party/cube/gradle/wrapper/gradle-wrapper.properties b/third_party/cube/gradle/wrapper/gradle-wrapper.properties
index 669386b..81aa1c0 100644
--- a/third_party/cube/gradle/wrapper/gradle-wrapper.properties
+++ b/third_party/cube/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists