Problems running tests on multidex app on Kitkat emulator after updating gradle plugin to 3.1.1
See original GitHub issueHello,
I’ve stumbled upon an issue after updating gradle plugin to 3.1.1.
I’ve tried to replicate on BasicSample (https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample) project and got something very similar to my project’s errors. Please take a look at 3 subsequent commits on the forked repo.
-
https://github.com/fada21/android-testing/commit/13488879e62e07349f204fc969642c25fe5af089 Working state of my project based on BasicSample. With not too many changes on top of BasicSample tests on Kitkat and Oreo emulator pass. All working fine.
-
https://github.com/fada21/android-testing/commit/8d314542c1823958a4dde7bac0a129bdcf9bcf02 After update to gradle build tool to 3.1.1 with few necessary changes tests on Kitkat emulator fail when they pass with no problems on Oreo. I think that is relevant console output part
> Task :app:compileDebugAndroidTestJavaWithJavac
Note: /home/fada21/Projects/android/android-testing/ui/espresso/BasicSample/app/src/androidTest/java/com/example/android/testing/espresso/BasicSample/ChangeTextBehaviorTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Warning: The rule `-keep public class *extends java.lang.annotation.Annotation {
*;
}` uses extends but actually matches implements.
Starting 0 tests on Nexus_4_API_19(AVD) - 4.4.2
com.android.builder.testing.ConnectedDevice > No tests found.[Nexus_4_API_19(AVD) - 4.4.2] FAILED
No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).
- https://github.com/fada21/android-testing/commit/edc2613da4784002d04561578ca9c3de45ee616d After disabling multidex test pass on both emulators
My ci pipelines fail after update and I can’t disable multidex. Any ideas? Should I report that to tools team?
Cheers, Lukasz
Issue Analytics
- State:
- Created 5 years ago
- Reactions:1
- Comments:12
Top GitHub Comments
I found a workaround to fix this problem. Instead of having my test related classes/packages inside:
app/src/androidTest/com.company.app.**
I’m createad a subpackage called test:
app/src/androidTest/com.company.app.**
Then, in my gradle file for I’ve added:
Inside my file
proguard-multidex-rules.pro
, I’ve added the following rule:Update:
instead of moving your packages, just add the following rule in the
proguard-multidex-rules.pro
file:I’ve opened a feature request to make Android Studio automatically apply the fix for this problem, so noone has to search for this solution online. Feel free to give it a star here: https://issuetracker.google.com/issues/140124440