From 11268e76db1642d4194b7a53b722df664f8c158c Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Fri, 24 May 2019 21:59:09 -0400 Subject: [PATCH 01/11] Build fix: AAPT2 error; inner element must either... When updating to SDK version 28, an error like this would appear in the build log: ~~~~~~ FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeDebugResources'. > Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details ~~~~~~ Further into the log, there will be errors like this: ========== :app:checkDebugManifest :app:generateDebugBuildConfig :app:prepareLintJar :app:generateDebugResValues :app:generateDebugResources :app:processDebugGoogleServices Parsing json file: C:\Users\z\StudioProjects\carstream-android-auto\app\google-services.json AGPBI: {"kind":"error","text":"error: \u003citem\u003e inner element must either be a resource reference or empty.","sources":[{"file":"C:\\Users\\z\\.gradle\\caches\\transforms-1\\files-1.1\\aauto-sdk-v4.5.aar\\f96625b74a7b23c8dec4d8b375491929\\res\\values\\ids.xml","position":{"startLine":19,"startColumn":2,"startOffset":347,"endLine":21,"endColumn":9,"endOffset":400}}],"original":"","tool":"AAPT"} [...] C:\Users\z\StudioProjects\carstream-android-auto\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2878: error: inner element must either be a resource reference or empty. [...] :app:mergeDebugResources Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details :app:mergeDebugResources FAILED ========== This commit overrides the errant elements to provide a definition that the newer build system is happy with. This solution is based off of the following Stack Overflow answer: https://stackoverflow.com/a/53332571 --- .../main/res/values/override_id_bodies.xml | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/src/main/res/values/override_id_bodies.xml diff --git a/app/src/main/res/values/override_id_bodies.xml b/app/src/main/res/values/override_id_bodies.xml new file mode 100644 index 0000000..1ebd28e --- /dev/null +++ b/app/src/main/res/values/override_id_bodies.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file From 2e30b05321016d9ca4f2c1fcb389d28ddd46fe11 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Fri, 24 May 2019 22:27:44 -0400 Subject: [PATCH 02/11] Build fix: AAPT2 error; unescaped apostrophe When updating to SDK version 28, an error like this would appear in the build log: ~~~~~~ :app:checkDebugManifest :app:generateDebugBuildConfig :app:prepareLintJar UP-TO-DATE :app:generateDebugResValues :app:generateDebugResources :app:processDebugGoogleServices Parsing json file: C:\Users\z\StudioProjects\carstream-android-auto\app\google-services.json AGPBI: {"kind":"error","text":"error: unescaped apostrophe in string","sources":[{"file":"C:\\Users\\z\\StudioProjects\\carstream-android-auto\\app\\src\\main\\res\\values-it\\strings.xml","position":{"startLine":27,"startColumn":4,"startOffset":1761,"endColumn":72,"endOffset":1829}}],"original":"","tool":"AAPT"} AGPBI: {"kind":"error","text":"error: not a valid string.","sources":[{"file":"C:\\Users\\z\\StudioProjects\\carstream-android-auto\\app\\src\\main\\res\\values-it\\strings.xml","position":{"startLine":27,"startColumn":4,"startOffset":1761,"endColumn":72,"endOffset":1829}}],"original":"","tool":"AAPT"} C:\Users\z\StudioProjects\carstream-android-auto\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-it\values-it.xml:89: error: unescaped apostrophe in string C:\Users\z\StudioProjects\carstream-android-auto\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-it\values-it.xml:89: error: not a valid string. :app:mergeDebugResources Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details :app:mergeDebugResources FAILED FAILURE: Build failed with an exception. ~~~~~~ This commit resolves the issue by adding the necessary escaping backslash before the apostrophes in the offending strings. --- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 9dac8a6..b9b544b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -25,7 +25,7 @@ CarSteam Channel Versione Impostazioni - Impostazioni dell'auto + Impostazioni dell\'auto Disattiva notifiche Disattiva notifiche a comparsa in Android Auto diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index eb1a801..79bdd27 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -4,8 +4,8 @@ CarStream player CarStream Kanaal WAARSCHUWING !!! - Video's bekijken tijdens het rijden kan auto-ongelukken veroorzaken. Door deze waarschuwing af te wijzen, gaat u ermee akkoord dat u op de hoogte bent van en verantwoordelijk bent voor de gevolgen. Noch de ontwikkelaar van deze app, noch Google, noch de fabrikant van deze apparatuur, noch de fabrikant van deze auto is verantwoordelijk voor ongevallen veroorzaakt door uw nalatigheid. U kunt overschakelen naar achtergrondweergave door in plaats daarvan op het mediapictogram te klikken. - Ik begrijp de risico's + Video\'s bekijken tijdens het rijden kan auto-ongelukken veroorzaken. Door deze waarschuwing af te wijzen, gaat u ermee akkoord dat u op de hoogte bent van en verantwoordelijk bent voor de gevolgen. Noch de ontwikkelaar van deze app, noch Google, noch de fabrikant van deze apparatuur, noch de fabrikant van deze auto is verantwoordelijk voor ongevallen veroorzaakt door uw nalatigheid. U kunt overschakelen naar achtergrondweergave door in plaats daarvan op het mediapictogram te klikken. + Ik begrijp de risico\'s URL : Over Terug From ec25368b841cce539415ce3d97ecb16ccd260f3f Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Thu, 23 May 2019 16:58:22 -0400 Subject: [PATCH 03/11] Solve "leaked Intent" exception. It was probably a red herring and not related to the crash I was experiencing, but getting rid of it is a good idea because this will aid in process of elimination. --- .../service/MyMediaBrowserService.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) rename app/src/main/java/com/{thekirankumar/youtubeauto => angry/unb10ck3d_y0utub3_andro1d_aut0}/service/MyMediaBrowserService.java (91%) diff --git a/app/src/main/java/com/thekirankumar/youtubeauto/service/MyMediaBrowserService.java b/app/src/main/java/com/angry/unb10ck3d_y0utub3_andro1d_aut0/service/MyMediaBrowserService.java similarity index 91% rename from app/src/main/java/com/thekirankumar/youtubeauto/service/MyMediaBrowserService.java rename to app/src/main/java/com/angry/unb10ck3d_y0utub3_andro1d_aut0/service/MyMediaBrowserService.java index 8d12dd4..aab3941 100644 --- a/app/src/main/java/com/thekirankumar/youtubeauto/service/MyMediaBrowserService.java +++ b/app/src/main/java/com/angry/unb10ck3d_y0utub3_andro1d_aut0/service/MyMediaBrowserService.java @@ -37,6 +37,7 @@ public class MyMediaBrowserService extends MediaBrowserServiceCompat { public static final String QUERY = "query"; private static final String TAG = MyMediaBrowserService.class.getName(); private MediaSessionCompat mediaSessionCompat; + private BroadcastReceiver webviewBroadcastReceiver = null; @Override public void onCreate() { @@ -51,17 +52,17 @@ public void onCreate() { } private void setup() { - PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder(); builder.setActions(getAvailableActions()); - builder.setState(PlaybackState.STATE_STOPPED, 0, 1); + builder.setState(PlaybackStateCompat.STATE_STOPPED, 0, 1); if (!SettingsUtils.isDisabledNotifications(this)) { MediaMetadataCompat.Builder metadata = new MediaMetadataCompat.Builder(); metadata.putString(METADATA_KEY_TITLE, "Click last icon in bottom bar & start playing from Youtube Auto app"); mediaSessionCompat.setMetadata(metadata.build()); } mediaSessionCompat.setPlaybackState(builder.build()); - registerReceiver(new BroadcastReceiver() { + + webviewBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { if (!SettingsUtils.isDisabledNotifications(context)) { @@ -83,11 +84,19 @@ public void onReceive(Context context, Intent intent) { mediaSessionCompat.setActive(false); } } - }, new IntentFilter(WEBVIEW_EVENT)); + }; + + registerReceiver(webviewBroadcastReceiver, new IntentFilter(WEBVIEW_EVENT)); } + private void teardown() { + if ( webviewBroadcastReceiver != null ) { + unregisterReceiver(webviewBroadcastReceiver); + } + } + private long getAvailableActions() { long actions = PlaybackStateCompat.ACTION_PLAY_PAUSE | @@ -98,11 +107,17 @@ private long getAvailableActions() { return actions; } + @Override public int onStartCommand(Intent intent, int flags, int startId) { MediaButtonReceiver.handleIntent(mediaSessionCompat, intent); return super.onStartCommand(intent, flags, startId); } + @Override public void onDestroy() { + teardown(); + super.onDestroy(); + } + @Nullable @Override public BrowserRoot onGetRoot(@NonNull String clientPackageName, int clientUid, @Nullable Bundle rootHints) { From 756bd467fa473bb7872482f5d92556857b932366 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Fri, 24 May 2019 23:41:24 -0400 Subject: [PATCH 04/11] Fix for APK gen exception: com.android.dex.DexException Set dexOptions.jumboMode = true; to mitigate an exception that might be encountered when trying to generate a (signed?) APK: "com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction!" Solution was taken from this stack overflow article: https://stackoverflow.com/questions/26093664/dexexception-cannot-merge-new-index-65536-into-a-non-jumbo-instruction --- app/build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index 13caba6..6390fa9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,6 +33,12 @@ android { } } } + dexOptions { + // This workaround exists to mitigate an error that can be encountered when + // generating a signed APK: + // com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction! + jumboMode = true + } } buildscript { From c09bcf1699f21c5a29b9c2cbca6ad4a8cabab8d9 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Fri, 24 May 2019 22:58:50 -0400 Subject: [PATCH 05/11] Build fix: receive_from_phone string not found When updating to SDK version 28, an error like this would appear in the build log: ~~~~~~ :app:generateDebugResources :app:processDebugGoogleServices Parsing json file: C:\Users\z\StudioProjects\carstream-android-auto\app\google-services.json :app:mergeDebugResources :app:createDebugCompatibleScreenManifests :app:processDebugManifest :app:splitsDiscoveryTaskDebug AGPBI: {"kind":"error","text":"error: resource string/receive_from_phone (aka com.google.android.kk:string/receive_from_phone) not found.","sources":[{"file":"C:\\Users\\z\\StudioProjects\\carstream-android-auto\\app\\src\\main\\res\\layout\\fragment_webview_car.xml","position":{"startLine":138}}],"original":"","tool":"AAPT"} C:\Users\z\StudioProjects\carstream-android-auto\app\src\main\res\layout\fragment_webview_car.xml:139: error: resource string/receive_from_phone (aka com.google.android.kk:string/receive_from_phone) not found. error: failed linking file resources. ~~~~~~ This commit resolves the issue by adding a receive_from_phone entry in the values/strings.xml file with the value "Receive from phone". I am not sure if this is what that value would have originally expanded to. The string is referred to by fragment_webview_car (as shown in the error), but the (English) definition for the string appears nowhere in the project. Perhaps this is from an older version of some API and is no longer available due to the update. At the time of this writing, there is a definition in values-ro/strings.xml which expands to "Primire" (and I don't know what that means). I tried to search for clues on the internets about where this might be defined and how to cope with the loss, but this might have been too obscure or specific to get any good leads. String identifiers are usually pretty true to their English expansion, so "Receive from phone" it is. --- app/src/main/res/values/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9ed11b6..816be11 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,6 +15,7 @@ Voice search Search FullScreen + Receive from phone Home Contain Fill From f2cae730ff4422f053ed29563fe0b66911d9a984 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Sat, 25 May 2019 02:03:21 -0400 Subject: [PATCH 06/11] Build fix: "send_to_car" not in default locale When updating to SDK version 28, an error like this would appear in the build log: ~~~~~~ C:\Users\z\StudioProjects\carstream-android-auto\app\src\main\res\values-ro\strings.xml:14: Error: "send_to_car" is translated here but not found in default locale [ExtraTranslation] Trimitere la masina ~~~~~~~~~~~~~~~~~~ Explanation for issues of type "ExtraTranslation": If a string appears in a specific language translation file, but there is no corresponding string in the default locale, then this string is probably unused. (It's technically possible that your application is only intended to run in a specific locale, but it's still a good idea to provide a fallback.). Note that these strings can lead to crashes if the string is looked up on any locale not providing a translation, so it's important to clean them up. ~~~~~~ This commit resolves the issue by adding a send_to_car entry in the values/strings.xml file with the value "Send to car". This might be similar in nature to the "receive_from_phone", just different in that the string isn't explicitly referenced in the project. I don't like the idea of potential crashes, so I'm putting a defualt value in English and hoping that its identifier is representative of what it's supposed to expand to. --- app/src/main/res/values/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 816be11..1859222 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,6 +10,7 @@ About Back Refresh + Send to car Night Mode Bookmarks Voice search From cdf86b11a6800976ab0eeafd1402cb834e17069e Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Fri, 24 May 2019 23:18:54 -0400 Subject: [PATCH 07/11] Build/crash fix: Didn't find class "okio.Buffer" okio is a dependency of okhttp3. Presumably, it wasn't necessary for this dependency to be specified in the earlier Android SDK version (not needed on 26, maybe needed on 28), or perhaps this was pulled by a newer version of okhttp3 (not needed for okhttp3-3.9.1, maybed needed for okhttp3-4.0.0-alpha01). At any rate, this commit prepares the codebase for such version bumps. I believe I encountered this as a runtime crash, though this problem, by its nature, could be encountered at build time depending on configuration: https://talk.remobjects.com/t/build-error-when-including-com-squareup-okio-jar/18249 The error message encountered was something like this: java.lang.ClassNotFoundException: Didn't find class "okio.Buffer" (It was longer, but I can't be more specific because I no longer have the log for it.) --- app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle b/app/build.gradle index 13caba6..bf771b2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,6 +62,7 @@ dependencies { compile 'com.github.zagum:SpeechRecognitionView:1.2.2' testCompile 'junit:junit:4.12' compile 'com.squareup.okhttp3:okhttp:3.9.1' + compile 'com.squareup.okio:okio:2.2.2' // Needed as dependency for okhttp3 compile 'com.android.support:appcompat-v7:26.1.0' compile 'com.android.support:recyclerview-v7:26.1.0' compile 'com.google.android.exoplayer:exoplayer:2.6.1' From c06948e641d597a9c9cca39ae3847efa4ae91890 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Sat, 25 May 2019 00:32:58 -0400 Subject: [PATCH 08/11] Build fix: okhttp3 contains Java 8 bytecode. When updating to SDK version 28, an error like this would appear in the build log: ~~~~~~ :app:compileDebugSources :app:mergeDebugShaders :app:compileDebugShaders :app:generateDebugAssets :app:mergeDebugAssets :app:transformClassesWithRealmTransformerForDebug com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\z\.gradle\caches\modules-2\files-2.1\com.squareup.okhttp3\okhttp\4.0.0-alpha01\5d58cd3772c4a977ab105b07d5698091ee5e6834\okhttp-4.0.0-alpha01.jar at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [...] Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\z\.gradle\caches\modules-2\files-2.1\com.squareup.okhttp3\okhttp\4.0.0-alpha01\5d58cd3772c4a977ab105b07d5698091ee5e6834\okhttp-4.0.0-alpha01.jar at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:550) at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.lambda$convertToDexArchive$1(DexArchiveBuilderTransform.java:488) at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) [...] Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing okhttp3/internal/ws/RealWebSocket.class The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle android { compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } } See https://developer.android.com/studio/write/java8-support.html for details. Alternatively, increase the minSdkVersion to 26 or above. at com.android.builder.dexing.DxDexArchiveBuilder.getExceptionToRethrow(DxDexArchiveBuilder.java:143) at com.android.builder.dexing.DxDexArchiveBuilder.convert(DxDexArchiveBuilder.java:89) at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:545) ... 6 more Caused by: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26) at com.android.dx.cf.code.Simulator$SimVisitor.visitConstant(Simulator.java:711) at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:781) at com.android.dx.cf.code.Simulator.simulate(Simulator.java:103) [...] :app:transformClassesWithDexBuilderForDebug FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:transformClassesWithDexBuilderForDebug'. > com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\z\.gradle\caches\modules-2\files-2.1\com.squareup.okhttp3\okhttp\4.0.0-alpha01\5d58cd3772c4a977ab105b07d5698091ee5e6834\okhttp-4.0.0-alpha01.jar [...] ~~~~~~ This commit is a workaround that sets compileOptions.sourceCompatibility and compileOptions.targetCompatibility as suggested by the build system's error message. --- app/build.gradle | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index bf771b2..06db767 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,6 +33,14 @@ android { } } } + compileOptions { + // This went in on 2019-05-25 because okhttp3-4.0.0-alpha01 contains Java 8 bytecode. + // The error message for this kindly offered the alternative of setting minSdkVersion to 26, + // which would be pretty not kind to users with slightly older phones, so let's not do that, + // and just set these compatibility flags instead. + sourceCompatibility 1.8 + targetCompatibility 1.8 + } } buildscript { From a86e338efb275aa2173a45b3f519ba22e8b54432 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Wed, 22 May 2019 16:17:16 -0400 Subject: [PATCH 09/11] Update to platform/SDK 28 + version bump deps. This might not update everything, but it does get to a working configuration on SDK/platform v28. This will bump the minSdkVersion from 15 to 16. According to https://developer.android.com/about/dashboards/index.html this will make CarStream no longer work on Android 4.0.4 and earlier devices. 4.1.x and later should still work. This represents about 0.6% of the active devices in the last 7 days (0.3% for the 4.0 family plus 0.3% for the 2.3 family). One of those is probably mine, and I can't imagine actually wanting to use the thing to connect to Android Auto; maps would be sooooo slow, assuming any of it would work at all. --- app/build.gradle | 36 ++++++++++++++++++------------------ build.gradle | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index af495cd..09bc571 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,12 +5,12 @@ android { lintOptions { abortOnError false } - compileSdkVersion 26 - buildToolsVersion '26.0.2' + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { applicationId "com.google.android.kk" - minSdkVersion 15 - targetSdkVersion 26 + minSdkVersion 16 + targetSdkVersion 28 versionCode 38 versionName "2.0.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -54,31 +54,31 @@ buildscript { jcenter() } dependencies { - classpath "io.realm:realm-gradle-plugin:4.3.3" + classpath "io.realm:realm-gradle-plugin:5.11.0" } } dependencies { - implementation 'com.google.firebase:firebase-core:11.0.4' - implementation 'com.google.firebase:firebase-messaging:11.0.4' - implementation 'com.google.firebase:firebase-crash:11.0.4' - implementation 'com.android.support:support-v4:26.1.0' + implementation 'com.google.firebase:firebase-core:16.0.9' + implementation 'com.google.firebase:firebase-messaging:18.0.0' + implementation 'com.google.firebase:firebase-crash:16.2.1' + implementation 'com.android.support:support-v4:28.0.0' compile fileTree(include: ['*.jar'], dir: 'libs') - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:26.1.0' - compile 'com.android.support:cardview-v7:26.1.0' - compile 'com.android.support.constraint:constraint-layout:1.0.2' - compile 'com.android.support:design:26.1.0' + compile 'com.android.support:appcompat-v7:28.0.0' + compile 'com.android.support:cardview-v7:28.0.0' + compile 'com.android.support.constraint:constraint-layout:2.0.0-beta1' + compile 'com.android.support:design:28.0.0' compile 'com.github.martoreto:aauto-sdk:v4.5' compile 'com.github.zagum:SpeechRecognitionView:1.2.2' - testCompile 'junit:junit:4.12' - compile 'com.squareup.okhttp3:okhttp:3.9.1' + testCompile 'junit:junit:4.13-beta-3' + compile 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' compile 'com.squareup.okio:okio:2.2.2' // Needed as dependency for okhttp3 - compile 'com.android.support:appcompat-v7:26.1.0' - compile 'com.android.support:recyclerview-v7:26.1.0' + compile 'com.android.support:appcompat-v7:28.0.0' + compile 'com.android.support:recyclerview-v7:28.0.0' compile 'com.google.android.exoplayer:exoplayer:2.6.1' compile 'com.github.javiersantos:AppUpdater:2.6.4' compile 'eu.chainfire:libsuperuser:1.0.0.+' diff --git a/build.gradle b/build.gradle index f3d240a..9f56c42 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files - classpath 'com.google.gms:google-services:3.1.0' + classpath 'com.google.gms:google-services:4.2.0' } } From 2485371e93eb0c73467e836723c2d6bcf8452a61 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Mon, 27 May 2019 18:47:11 -0400 Subject: [PATCH 10/11] Fix build break from merge activity on PR#231 The compileOptions section of build.gradle ended up outside of the 'android' toplevel section, which caused CI tests to fail. I've moved it back into the 'android' section and tried to line it up with what PR#232 has so that future merge should be fine at this spot. --- app/build.gradle | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d6ec441..af495cd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,13 +33,6 @@ android { } } } - dexOptions { - // This workaround exists to mitigate an error that can be encountered when - // generating a signed APK: - // com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction! - jumboMode = true - } - compileOptions { // This went in on 2019-05-25 because okhttp3-4.0.0-alpha01 contains Java 8 bytecode. // The error message for this kindly offered the alternative of setting minSdkVersion to 26, @@ -48,6 +41,13 @@ android { sourceCompatibility 1.8 targetCompatibility 1.8 } + dexOptions { + // This workaround exists to mitigate an error that can be encountered when + // generating a signed APK: + // com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction! + jumboMode = true + } +} buildscript { repositories { From 34ee5533155ada6942f042f8fae6e654e01e1e25 Mon Sep 17 00:00:00 2001 From: Chad Joan Date: Mon, 27 May 2019 22:17:20 -0400 Subject: [PATCH 11/11] Update .travis.yml to build/sdk version 28.0.3 --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b13dd2e..77d1a5a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,8 @@ android: components: - platform-tools - tools - - build-tools-26.0.2 - - android-26 + - build-tools-28.0.3 + - android-28 - extra-android-m2repository - extra-google-google_play_services - - sys-img-armeabi-v7a-android-26 \ No newline at end of file + - sys-img-armeabi-v7a-android-28