Troubleshooting
Data Binding
java.lang.NoSuchMethodError
Accessing Binding Objects at Runtime
Gradle 3.4.0 has specific issues with Android Data Binding. These manifest with errors like:
Crash: java.lang.NoSuchMethodError: No direct method at com.loopmediagroup.ui.databinding.LmgListitemTwoLineLargeImgBinding.<init>
Solution
Move the project to use a different version, either 3.4.2 or lower / higher.
Glide
SSLHandshakeException(Chain validation failed)
When Running In Emulator
When running with the emulator, you may see javax.net.ssl.SSLHandshakeException(Chain validation failed)
errors when loading images.
This is typically caused by a difference between the actual date & time and the date & time in the emulator. Cold booting the emulator will generally fix this issue.
See Github Issue Discussion for more details.
Android 4.X SSL Issues
There are some issues with older versions of Android and newer SSL certificate type requirements. Depending on your app's configuration you may hit one or more of these issues.
These are generally able to be resolved by adding a custom Glide module to work around the problem, such has this solution.
As each app's implementation will be different, please research the correct solution for your app if you encounter these types of error.
Kotlin
More than one file with path META-INF
...
There is an issue with some versions of the Kotlin Serialization library that can include multiple versions of the meta files during build.
This manifests with errors like:
Execution failed for task ':app:mergeDebugJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> More than one file was found with OS independent path 'META-INF/kotlinx-serialization-json.kotlin_module'
Solution
Explicitly exclude the offending META-INF
files in the android.packagingOptions
section of the app build.gradle
file:
android {
...
packagingOptions {
exclude 'META-INF/kotlinx-serialization-json.kotlin_module'
}
}