I still want to update from `.mk` files to `cmake`, which Android NDK prefers, but this patch at least makes everything compatible with modern Android. This does not fix the [broken `sqlite3/src/androidTest/java` tests](https://sqlite.org/forum/forumpost/a455150e82), which I'm still investigating.
> Modernized dependencies:
> Gradle 6.5.1
> AGP 4.0.0
> target and compile SDK 29
> Updated to AndroidX
> Changed NDK to side-by-side
~~~~~diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b6a19e6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/.gradle
+/build
+/local.properties
diff --git a/build.gradle b/build.gradle
index 63db7bf..7d34715 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.4'
+ classpath 'com.android.tools.build:gradle:4.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -16,6 +16,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ google()
}
}
diff --git a/gradle.properties b/gradle.properties
index c04c048..223c6a0 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,3 +17,5 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5183492..85801fc 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755
diff --git a/sqlite3/.gitignore b/sqlite3/.gitignore
new file mode 100644
index 0000000..e249f22
--- /dev/null
+++ b/sqlite3/.gitignore
@@ -0,0 +1,3 @@
+/.externalNativeBuild
+build
+.cxx
diff --git a/sqlite3/build.gradle b/sqlite3/build.gradle
index 4210136..ad53fb9 100644
--- a/sqlite3/build.gradle
+++ b/sqlite3/build.gradle
@@ -1,13 +1,14 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 25
+ compileSdkVersion 29
defaultConfig {
minSdkVersion 16
+ targetSdkVersion 29
versionCode 1
versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
buildTypes {
@@ -32,14 +33,19 @@ android {
path 'src/main/jni/Android.mk'
}
}
+
+ ndkVersion "21.3.6528147"
+
+ useLibrary 'android.test.base' // for android.test.AndroidTestCase
+ useLibrary 'android.test.runner' // for android.test.MoreAsserts
}
dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- androidTestCompile 'com.android.support:support-annotations:24.0.0'
- androidTestCompile 'com.android.support.test:runner:0.5'
- androidTestCompile 'com.android.support.test:rules:0.5'
- testCompile 'junit:junit:4.12'
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ androidTestImplementation 'androidx.annotation:annotation:1.1.0'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+ androidTestImplementation 'androidx.test:rules:1.2.0'
+ testImplementation 'junit:junit:4.13'
}
allprojects {
@@ -48,4 +54,4 @@ allprojects {
google()
jcenter()
}
-}
\ No newline at end of file
+}
diff --git a/sqlite3/src/androidTest/java/org/sqlite/database/SeeTest1.java b/sqlite3/src/androidTest/java/org/sqlite/database/SeeTest1.java
index 0e65657..d2a0536 100644
--- a/sqlite3/src/androidTest/java/org/sqlite/database/SeeTest1.java
+++ b/sqlite3/src/androidTest/java/org/sqlite/database/SeeTest1.java
@@ -3,9 +3,8 @@ package org.sqlite.database;
import android.content.Context;
import android.database.Cursor;
import android.os.AsyncTask;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.util.Log;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import junit.framework.Assert;
@@ -21,8 +20,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.util.Arrays;
-import static org.junit.Assert.*;
-
class MyHelper extends SQLiteOpenHelper {
@@ -75,7 +72,7 @@ public class SeeTest1 {
System.loadLibrary("sqliteX");
- mContext = InstrumentationRegistry.getTargetContext();
+ mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
// delete any existing database
File databaseFile = mContext.getDatabasePath(MyHelper.DATABASE_NAME);
diff --git a/sqlite3/src/androidTest/java/org/sqlite/database/sqlite_cts/SQLiteStatementTest.java b/sqlite3/src/androidTest/java/org/sqlite/database/sqlite_cts/SQLiteStatementTest.java
index b601405..dd98914 100644
--- a/sqlite3/src/androidTest/java/org/sqlite/database/sqlite_cts/SQLiteStatementTest.java
+++ b/sqlite3/src/androidTest/java/org/sqlite/database/sqlite_cts/SQLiteStatementTest.java
@@ -18,7 +18,6 @@ package org.sqlite.database.sqlite_cts;
import android.content.ContentValues;
-import android.content.Context;
import android.database.Cursor;
import org.sqlite.database.DatabaseUtils;
import org.sqlite.database.SQLException;
@@ -26,7 +25,7 @@ import org.sqlite.database.sqlite.SQLiteDatabase;
import org.sqlite.database.sqlite.SQLiteDoneException;
import org.sqlite.database.sqlite.SQLiteStatement;
import android.os.ParcelFileDescriptor;
-import android.support.test.filters.Suppress;
+import androidx.test.filters.Suppress;
import android.test.AndroidTestCase;
import android.test.MoreAsserts;
diff --git a/sqlite3test/.gitignore b/sqlite3test/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/sqlite3test/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/sqlite3test/build.gradle b/sqlite3test/build.gradle
index c82a2d3..8c711b8 100644
--- a/sqlite3test/build.gradle
+++ b/sqlite3test/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 23
+ compileSdkVersion 29
defaultConfig {
applicationId "org.sqlite.customsqlitetest"
minSdkVersion 16
- targetSdkVersion 23
+ targetSdkVersion 29
versionCode 1
versionName "1.0"
}
@@ -16,11 +16,16 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+
+ ndkVersion "21.3.6528147"
+
+ useLibrary 'android.test.base' // for android.test.AndroidTestCase
+ useLibrary 'android.test.runner' // for android.test.ApplicationTestCase extends AndroidTestCase
}
dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:23.4.0'
- compile project(':sqlite3')
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ testImplementation 'junit:junit:4.13'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation project(':sqlite3')
}
diff --git a/sqlite3test/src/main/java/org/sqlite/customsqlitetest/MainActivity.java b/sqlite3test/src/main/java/org/sqlite/customsqlitetest/MainActivity.java
index 2fff126..b61cd08 100644
--- a/sqlite3test/src/main/java/org/sqlite/customsqlitetest/MainActivity.java
+++ b/sqlite3test/src/main/java/org/sqlite/customsqlitetest/MainActivity.java
@@ -3,7 +3,7 @@ package org.sqlite.customsqlitetest;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
~~~~~