Skip to content

Commit e01ab49

Browse files
authored
Android and Gradle generation testing for demos (#1387)
1 parent 374264b commit e01ab49

File tree

10 files changed

+123
-27
lines changed

10 files changed

+123
-27
lines changed

.github/workflows/android-demos.yml

+76-12
Original file line numberDiff line numberDiff line change
@@ -22,57 +22,121 @@ on:
2222
jobs:
2323
build-activity-demo:
2424
runs-on: ubuntu-latest
25+
strategy:
26+
matrix:
27+
java-version: [11, 17, 21]
28+
include:
29+
- java-version: 11
30+
gradle-version: 6.5
31+
agp-version: 4.1.3
32+
- java-version: 17
33+
gradle-version: 7.5
34+
agp-version: 7.4.2
35+
- java-version: 21
36+
gradle-version: 8.5
37+
agp-version: 8.2.2
38+
2539
defaults:
2640
run:
2741
working-directory: demo/android/Activity
2842

2943
steps:
3044
- uses: actions/checkout@v3
45+
46+
- name: Override gradle settings
47+
run: sed -i "s/com.android.tools.build:gradle:[0-9]*\.[0-9]*\.[0-9]*/com.android.tools.build:gradle:${{ matrix.agp-version }}/g" build.gradle
3148

32-
- name: set up JDK 11
49+
- name: set up JDK ${{ matrix.java-version }}
3350
uses: actions/setup-java@v3
3451
with:
35-
java-version: '11'
52+
java-version: ${{ matrix.java-version }}
3653
distribution: 'temurin'
3754

38-
- name: Build English
39-
run: ./gradlew assembleEnDebug
55+
- name: Use Gradle ${{ matrix.gradle-version }}
56+
uses: gradle/actions/setup-gradle@v3
57+
with:
58+
gradle-version: ${{ matrix.gradle-version }}
59+
4060

41-
- name: Build Other Language
42-
run: ./gradlew assembleArDebug
61+
- name: Build
62+
run: gradle assembleDebug
4363

4464
build-service-demo:
4565
runs-on: ubuntu-latest
66+
strategy:
67+
matrix:
68+
java-version: [11, 17, 21]
69+
include:
70+
- java-version: 11
71+
gradle-version: 6.5
72+
agp-version: 4.1.3
73+
- java-version: 17
74+
gradle-version: 7.5
75+
agp-version: 7.4.2
76+
- java-version: 21
77+
gradle-version: 8.5
78+
agp-version: 8.2.2
79+
4680
defaults:
4781
run:
4882
working-directory: demo/android/Service
4983

5084
steps:
5185
- uses: actions/checkout@v3
5286

53-
- name: set up JDK 11
87+
- name: Override gradle settings
88+
run: sed -i "s/com.android.tools.build:gradle:[0-9]*\.[0-9]*\.[0-9]*/com.android.tools.build:gradle:${{ matrix.agp-version }}/g" build.gradle
89+
90+
- name: set up JDK ${{ matrix.java-version }}
5491
uses: actions/setup-java@v3
5592
with:
56-
java-version: '11'
93+
java-version: ${{ matrix.java-version }}
5794
distribution: 'temurin'
5895

96+
- name: Use Gradle ${{ matrix.gradle-version }}
97+
uses: gradle/actions/setup-gradle@v3
98+
with:
99+
gradle-version: ${{ matrix.gradle-version }}
100+
59101
- name: Build
60-
run: ./gradlew assembleDebug
102+
run: gradle assembleDebug
61103

62104
build-stt-demo:
63105
runs-on: ubuntu-latest
106+
strategy:
107+
matrix:
108+
java-version: [11, 17, 21]
109+
include:
110+
- java-version: 11
111+
gradle-version: 6.5
112+
agp-version: 4.1.3
113+
- java-version: 17
114+
gradle-version: 7.5
115+
agp-version: 7.4.2
116+
- java-version: 21
117+
gradle-version: 8.5
118+
agp-version: 8.2.2
119+
64120
defaults:
65121
run:
66122
working-directory: demo/android/STT
67123

68124
steps:
69125
- uses: actions/checkout@v3
70126

71-
- name: set up JDK 11
127+
- name: Override gradle settings
128+
run: sed -i "s/com.android.tools.build:gradle:[0-9]*\.[0-9]*\.[0-9]*/com.android.tools.build:gradle:${{ matrix.agp-version }}/g" build.gradle
129+
130+
- name: set up JDK ${{ matrix.java-version }}
72131
uses: actions/setup-java@v3
73132
with:
74-
java-version: '11'
133+
java-version: ${{ matrix.java-version }}
75134
distribution: 'temurin'
76135

136+
- name: Use Gradle ${{ matrix.gradle-version }}
137+
uses: gradle/actions/setup-gradle@v3
138+
with:
139+
gradle-version: ${{ matrix.gradle-version }}
140+
77141
- name: Build
78-
run: ./gradlew assembleDebug
142+
run: gradle assembleDebug

demo/android/Activity/gradle.properties

+2
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,5 @@ org.gradle.jvmargs=-Xmx1536m
1717
android.useAndroidX=true
1818
# Automatically convert third-party libraries to use AndroidX
1919
android.enableJetifier=true
20+
android.nonTransitiveRClass=false
21+

demo/android/Activity/porcupine-activity-demo-app/build.gradle

+18-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import groovy.json.JsonSlurper
33
apply plugin: 'com.android.application'
44

55
android {
6+
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
67
compileSdk defaultTargetSdkVersion
78

89
defaultConfig {
@@ -12,6 +13,13 @@ android {
1213
versionCode 8
1314
versionName "3.0.0"
1415
}
16+
buildFeatures {
17+
buildConfig true
18+
}
19+
compileOptions {
20+
sourceCompatibility JavaVersion.VERSION_1_8
21+
targetCompatibility JavaVersion.VERSION_1_8
22+
}
1523
buildTypes {
1624
release {
1725
minifyEnabled true
@@ -28,8 +36,10 @@ android {
2836

2937
flavorDimensions "language"
3038
productFlavors {
31-
en {
32-
getIsDefault().set(true)
39+
if (agpVersion.tokenize('.')[0].toInteger() >= 7) {
40+
en {
41+
getIsDefault().set(true)
42+
}
3343
}
3444

3545
languages.each { language ->
@@ -47,26 +57,28 @@ android {
4757
if (flavor.name != 'en') {
4858
from("$projectDir/../../../../lib/common/")
4959
include("porcupine_params_${flavor.name}.pv")
50-
into("$projectDir/src/main/assets/models")
60+
into("$projectDir/src/${flavor.name}/assets/models")
5161
}
5262
}
5363
task("${flavor.name}CopyKeywords", type: Copy) {
5464
description = "Copy ${flavor.name} resources"
5565
if (flavor.name != 'en') {
5666
from("$projectDir/../../../../resources/keyword_files_${flavor.name}/android")
5767
include('*.ppn')
58-
into("$projectDir/src/main/assets/keywords")
68+
into("$projectDir/src/${flavor.name}/assets/keywords")
5969
rename { String fileName ->
6070
fileName.replace("_android", "").replace(" ", "_")
6171
}
6272
}
6373
}
6474
}
6575
}
66-
lint {
76+
lintOptions {
6777
abortOnError false
6878
}
69-
namespace 'ai.picovoice.porcupine.demo'
79+
if (agpVersion.tokenize('.')[0].toInteger() >= 7) {
80+
namespace 'ai.picovoice.porcupine.demo'
81+
}
7082
}
7183

7284
dependencies {

demo/android/Activity/porcupine-activity-demo-app/src/main/AndroidManifest.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="ai.picovoice.porcupine.demo">
34

45
<uses-permission android:name="android.permission.INTERNET" />
56
<uses-permission android:name="android.permission.RECORD_AUDIO" />
@@ -23,4 +24,4 @@
2324
</activity>
2425
</application>
2526

26-
</manifest>
27+
</manifest>

demo/android/STT/gradle.properties

+2
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,5 @@ org.gradle.jvmargs=-Xmx1536m
1717
android.useAndroidX=true
1818
# Automatically convert third-party libraries to use AndroidX
1919
android.enableJetifier=true
20+
android.nonTransitiveRClass=false
21+

demo/android/STT/porcupine-stt-demo-app/build.gradle

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
apply plugin: 'com.android.application'
22

33
android {
4+
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
45
compileSdk defaultTargetSdkVersion
56
defaultConfig {
67
applicationId "ai.picovoice.porcupine.sttdemo"
@@ -15,14 +16,19 @@ android {
1516
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1617
}
1718
}
19+
buildFeatures {
20+
buildConfig true
21+
}
1822
compileOptions {
1923
sourceCompatibility JavaVersion.VERSION_1_8
2024
targetCompatibility JavaVersion.VERSION_1_8
2125
}
22-
lint {
26+
lintOptions {
2327
abortOnError false
2428
}
25-
namespace 'ai.picovoice.porcupine.sttdemo'
29+
if (agpVersion.tokenize('.')[0].toInteger() >= 7) {
30+
namespace 'ai.picovoice.porcupine.sttdemo'
31+
}
2632
}
2733

2834
dependencies {

demo/android/STT/porcupine-stt-demo-app/src/main/AndroidManifest.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="ai.picovoice.porcupine.sttdemo">
34

45
<uses-permission android:name="android.permission.INTERNET" />
56
<uses-permission android:name="android.permission.RECORD_AUDIO" />
@@ -29,4 +30,4 @@
2930
</activity>
3031
</application>
3132

32-
</manifest>
33+
</manifest>

demo/android/Service/gradle.properties

+1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ org.gradle.jvmargs=-Xmx1536m
1717
android.useAndroidX=true
1818
# Automatically convert third-party libraries to use AndroidX
1919
android.enableJetifier=true
20+
android.nonTransitiveRClass=false
2021

demo/android/Service/porcupine-service-demo-app/build.gradle

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
apply plugin: 'com.android.application'
22

33
android {
4+
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
45
compileSdk defaultTargetSdkVersion
56
defaultConfig {
67
applicationId "ai.picovoice.porcupinedemoservice"
@@ -15,11 +16,16 @@ android {
1516
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
1617
}
1718
}
19+
buildFeatures {
20+
buildConfig true
21+
}
1822
compileOptions {
1923
sourceCompatibility JavaVersion.VERSION_1_8
2024
targetCompatibility JavaVersion.VERSION_1_8
2125
}
22-
namespace 'ai.picovoice.porcupinedemoservice'
26+
if (agpVersion.tokenize('.')[0].toInteger() >= 7) {
27+
namespace 'ai.picovoice.porcupinedemoservice'
28+
}
2329
}
2430

2531
dependencies {

demo/android/Service/porcupine-service-demo-app/src/main/AndroidManifest.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="ai.picovoice.porcupinedemoservice">
34

45
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
56
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
@@ -25,4 +26,4 @@
2526
</activity>
2627
</application>
2728

28-
</manifest>
29+
</manifest>

0 commit comments

Comments
 (0)