Skip to main content

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'
}
}