material-components-android icon indicating copy to clipboard operation
material-components-android copied to clipboard

[BottomSheetBehavior] java.lang.ClassNotFoundException: Didn't find class "android.view.RoundedCorner"

Open skywalkerdude opened this issue 2 years ago • 1 comments
trafficstars

Description: Trying to mock BottomSheetBehavior in com.google.android.material:material:1.10.0 throws a ClassNotFoundException

Minimal sample app repro: https://github.com/skywalkerdude/RoundedCornerError Just pull the project and run RandomUnitTest to reproduce

Android API version: Works on API 30+, but breaks on API 29-

Material Library version: 1.10.0

Stack Trace:

Underlying exception : java.lang.IllegalArgumentException: Could not create type
at com.example.roundedcornererror.RandomUnitTest.noClassFound(RandomUnitTest.java:16)
... 32 trimmed
Caused by: java.lang.IllegalArgumentException: Could not create type
at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:170)
at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399)
at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190)
at net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410)
at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.mockClass(TypeCachingBytecodeGenerator.java:75)
at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMockType(SubclassByteBuddyMockMaker.java:77)
at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMock(SubclassByteBuddyMockMaker.java:43)
at org.mockito.android.internal.creation.AndroidByteBuddyMockMaker.createMock(AndroidByteBuddyMockMaker.java:39)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:99)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:88)
at org.mockito.Mockito.mock(Mockito.java:2101)
at org.mockito.Mockito.mock(Mockito.java:2016)
... 34 more
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/RoundedCorner;
at java.lang.reflect.Executable.getParameterTypesInternal(Native Method)
at java.lang.reflect.Method.getParameterTypes(Method.java:186)
at java.lang.Class.getDeclaredMethods(Class.java:1884)
at net.bytebuddy.description.method.MethodList$ForLoadedMethods.<init>(MethodList.java:152)
at net.bytebuddy.description.type.TypeDescription$ForLoadedType.getDeclaredMethods(TypeDescription.java:8940)
at net.bytebuddy.description.type.TypeDescription$Generic$OfNonGenericType.getDeclaredMethods(TypeDescription.java:3711)
at net.bytebuddy.description.type.TypeDescription$Generic$LazyProjection.getDeclaredMethods(TypeDescription.java:6210)
at net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy$Default$5.doExtractConstructors(ConstructorStrategy.java:175)
at net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy$Default.extractConstructors(ConstructorStrategy.java:196)
at net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.applyConstructorStrategy(SubclassDynamicTypeBuilder.java:242)
at net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.toTypeWriter(SubclassDynamicTypeBuilder.java:212)
at net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.toTypeWriter(SubclassDynamicTypeBuilder.java:203)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4055)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3739)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$Delegator.make(DynamicType.java:3991)
at org.mockito.internal.creation.bytebuddy.SubclassBytecodeGenerator.mockClass(SubclassBytecodeGenerator.java:296)
at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.lambda$mockClass$0$org-mockito-internal-creation-bytebuddy-TypeCachingBytecodeGenerator(TypeCachingBytecodeGenerator.java:78)
at org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator$$ExternalSyntheticLambda0.call(Unknown Source:4)
at net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168)
... 45 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.RoundedCorner" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/android.test.mock.jar", zip file "/data/app/com.example.roundedcornererror.test-mOMT6bB7Q_o6X8S753hUTw==/base.apk", zip file "/data/app/com.example.roundedcornererror-_JfSh1BDfi_sNlQlZlwn4w==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.roundedcornererror.test-mOMT6bB7Q_o6X8S753hUTw==/lib/x86, /data/app/com.example.roundedcornererror-_JfSh1BDfi_sNlQlZlwn4w==/lib/x86, /system/lib, /system/product/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 64 more

skywalkerdude avatar Nov 21 '23 05:11 skywalkerdude

Friendly ping on this @afohrman

skywalkerdude avatar Apr 15 '24 04:04 skywalkerdude