@RunWith(AndroidJUnit4::class) VerifyError when running with Coverage.

137 阅读6分钟

1. 错误

image.png

image.png 详细日志如下:


Bad return type
Exception Details:
  Location:
    android/content/res/ResourcesImpl.$$robo$$android_content_res_ResourcesImpl$loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; @635: areturn
  Reason:
    Type 'java/lang/Object' (current frame, stack[0]) is not assignable to 'android/content/res/ComplexColor' (from method signature)
  Current Frame:
    bci: @635
    flags: { }
    locals: { 'android/content/res/ResourcesImpl', 'android/content/res/Resources', 'android/util/TypedValue', integer, 'android/content/res/Resources$Theme', '[I', 'java/lang/String', 'java/lang/Object', 'android/content/res/XmlResourceParser', 'android/util/AttributeSet', integer, 'java/lang/String' }
    stack: { 'java/lang/Object' }
  Bytecode:
    0000000: b200 96c7 000b 1298 b800 9eb3 0096 b200
    0000010: 963a 0519 0511 0198 5c2e 0460 4f2c b401
    0000020: c0c7 002c 1905 1101 995c 2e04 604f bb04
    0000030: 6d59 bb01 2c59 b701 2d13 046f b601 332c
    0000040: b402 c8b6 0196 b601 3db7 0470 bf19 0511
    0000050: 019a 5c2e 0460 4f2c b401 c0b9 01c1 0100
    0000060: 3a06 1905 1101 9b5c 2e04 604f 013a 0719
    0000070: 0511 019c 5c2e 0460 4f14 01e5 1906 b801
    0000080: ee19 0511 019d 5c2e 0460 4f19 0613 03a2
    0000090: b603 a699 0178 1905 1101 9e5c 2e04 604f
    00000a0: 2a19 061d 2cb4 01be 1304 72b6 03f6 3a08
    00000b0: 1905 1101 9f5c 2e04 604f 1908 b804 783a
    00000c0: 0919 0511 01a0 5c2e 0460 4f19 08b9 047b
    00000d0: 0100 5936 0a05 9f00 0c15 0a04 9f00 06a7
    00000e0: ffe2 1905 1101 a15c 2e04 604f 150a 059f
    00000f0: 0018 1905 1101 a25c 2e04 604f bb03 f259
    0000100: 1304 7db7 047e bf19 0511 01a3 5c2e 0460
    0000110: 4f19 08b9 0481 0100 3a0b 1905 1101 a45c
    0000120: 2e04 604f 190b 1304 83b6 01a9 9900 1c19
    0000130: 0511 01a5 5c2e 0460 4f2b 1908 1909 1904
    0000140: b804 893a 07a7 002e 1905 1101 a65c 2e04
    0000150: 604f 190b 1304 8bb6 01a9 9900 1919 0511
    0000160: 01a7 5c2e 0460 4f2b 1908 1909 1904 b804
    0000170: 8e3a 0719 0511 01a8 5c2e 0460 4f19 08b9
    0000180: 03fd 0100 1905 1101 a95c 2e04 604f a700
    0000190: d119 0511 01aa 5c2e 0460 4f3a 0819 0511
    00001a0: 01ab 5c2e 0460 4f14 01e5 b802 7819 0511
    00001b0: 01ac 5c2e 0460 4fbb 0016 59bb 012c 59b7
    00001c0: 012d 1301 c7b6 0133 1906 b601 3313 0490
    00001d0: b601 331d 1905 1101 ad5c 2e04 604f b801
    00001e0: 39b6 0133 b601 3db7 0140 3a09 1905 1101
    00001f0: ae5c 2e04 604f 1909 1908 b601 db57 1905
    0000200: 1101 af5c 2e04 604f 1909 bf19 0511 01b0
    0000210: 5c2e 0460 4f14 01e5 b802 7819 0511 01b1
    0000220: 5c2e 0460 4fbb 0016 59bb 012c 59b7 012d
    0000230: 1301 c7b6 0133 1906 b601 3313 01c9 b601
    0000240: 331d 1905 1101 b25c 2e04 604f b801 39b6
    0000250: 0133 1304 5db6 0133 b601 3db7 0140 bf19
    0000260: 0511 01b3 5c2e 0460 4f14 01e5 b802 7819
    0000270: 0511 01b4 5c2e 0460 4f19 07b0          
  Exception Handler Table:
    bci [150, 388] => handler: 401
  Stackmap Table:
    same_frame(@14)
    append_frame(@77,Object[#290])
    full_frame(@193,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Null,Object[#1020],Object[#1173]},{})
    append_frame(@226,Integer)
    same_frame(@263)
    append_frame(@328,Object[#218])
    full_frame(@371,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Object[#4],Object[#1020],Object[#1173],Integer,Object[#218]},{})
    full_frame(@401,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Object[#4]},{Object[#344]})
    full_frame(@523,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Null},{})
    full_frame(@607,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Object[#4],Object[#1020],Object[#1173],Integer,Object[#218]},{})

java.lang.VerifyError: Bad return type
Exception Details:
  Location:
    android/content/res/ResourcesImpl.$$robo$$android_content_res_ResourcesImpl$loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; @635: areturn
  Reason:
    Type 'java/lang/Object' (current frame, stack[0]) is not assignable to 'android/content/res/ComplexColor' (from method signature)
  Current Frame:
    bci: @635
    flags: { }
    locals: { 'android/content/res/ResourcesImpl', 'android/content/res/Resources', 'android/util/TypedValue', integer, 'android/content/res/Resources$Theme', '[I', 'java/lang/String', 'java/lang/Object', 'android/content/res/XmlResourceParser', 'android/util/AttributeSet', integer, 'java/lang/String' }
    stack: { 'java/lang/Object' }
  Bytecode:
    0000000: b200 96c7 000b 1298 b800 9eb3 0096 b200
    0000010: 963a 0519 0511 0198 5c2e 0460 4f2c b401
    0000020: c0c7 002c 1905 1101 995c 2e04 604f bb04
    0000030: 6d59 bb01 2c59 b701 2d13 046f b601 332c
    0000040: b402 c8b6 0196 b601 3db7 0470 bf19 0511
    0000050: 019a 5c2e 0460 4f2c b401 c0b9 01c1 0100
    0000060: 3a06 1905 1101 9b5c 2e04 604f 013a 0719
    0000070: 0511 019c 5c2e 0460 4f14 01e5 1906 b801
    0000080: ee19 0511 019d 5c2e 0460 4f19 0613 03a2
    0000090: b603 a699 0178 1905 1101 9e5c 2e04 604f
    00000a0: 2a19 061d 2cb4 01be 1304 72b6 03f6 3a08
    00000b0: 1905 1101 9f5c 2e04 604f 1908 b804 783a
    00000c0: 0919 0511 01a0 5c2e 0460 4f19 08b9 047b
    00000d0: 0100 5936 0a05 9f00 0c15 0a04 9f00 06a7
    00000e0: ffe2 1905 1101 a15c 2e04 604f 150a 059f
    00000f0: 0018 1905 1101 a25c 2e04 604f bb03 f259
    0000100: 1304 7db7 047e bf19 0511 01a3 5c2e 0460
    0000110: 4f19 08b9 0481 0100 3a0b 1905 1101 a45c
    0000120: 2e04 604f 190b 1304 83b6 01a9 9900 1c19
    0000130: 0511 01a5 5c2e 0460 4f2b 1908 1909 1904
    0000140: b804 893a 07a7 002e 1905 1101 a65c 2e04
    0000150: 604f 190b 1304 8bb6 01a9 9900 1919 0511
    0000160: 01a7 5c2e 0460 4f2b 1908 1909 1904 b804
    0000170: 8e3a 0719 0511 01a8 5c2e 0460 4f19 08b9
    0000180: 03fd 0100 1905 1101 a95c 2e04 604f a700
    0000190: d119 0511 01aa 5c2e 0460 4f3a 0819 0511
    00001a0: 01ab 5c2e 0460 4f14 01e5 b802 7819 0511
    00001b0: 01ac 5c2e 0460 4fbb 0016 59bb 012c 59b7
    00001c0: 012d 1301 c7b6 0133 1906 b601 3313 0490
    00001d0: b601 331d 1905 1101 ad5c 2e04 604f b801
    00001e0: 39b6 0133 b601 3db7 0140 3a09 1905 1101
    00001f0: ae5c 2e04 604f 1909 1908 b601 db57 1905
    0000200: 1101 af5c 2e04 604f 1909 bf19 0511 01b0
    0000210: 5c2e 0460 4f14 01e5 b802 7819 0511 01b1
    0000220: 5c2e 0460 4fbb 0016 59bb 012c 59b7 012d
    0000230: 1301 c7b6 0133 1906 b601 3313 01c9 b601
    0000240: 331d 1905 1101 b25c 2e04 604f b801 39b6
    0000250: 0133 1304 5db6 0133 b601 3db7 0140 bf19
    0000260: 0511 01b3 5c2e 0460 4f14 01e5 b802 7819
    0000270: 0511 01b4 5c2e 0460 4f19 07b0          
  Exception Handler Table:
    bci [150, 388] => handler: 401
  Stackmap Table:
    same_frame(@14)
    append_frame(@77,Object[#290])
    full_frame(@193,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Null,Object[#1020],Object[#1173]},{})
    append_frame(@226,Integer)
    same_frame(@263)
    append_frame(@328,Object[#218])
    full_frame(@371,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Object[#4],Object[#1020],Object[#1173],Integer,Object[#218]},{})
    full_frame(@401,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Object[#4]},{Object[#344]})
    full_frame(@523,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Null},{})
    full_frame(@607,{Object[#2],Object[#24],Object[#443],Integer,Object[#27],Object[#290],Object[#218],Object[#4],Object[#1020],Object[#1173],Integer,Object[#218]},{})

	at android.content.res.Resources.__constructor__(Resources.java:242)
	at android.content.res.Resources.<init>(Resources.java)
	at org.robolectric.shadows.ShadowResources.getSystem(ShadowResources.java:86)
	at android.content.res.Resources.getSystem(Resources.java)
	at org.robolectric.android.internal.RoboMonitoringInstrumentation.onCreate(RoboMonitoringInstrumentation.java:81)
	at org.robolectric.android.internal.AndroidTestEnvironment.createInstrumentation(AndroidTestEnvironment.java:592)
	at org.robolectric.android.internal.AndroidTestEnvironment.setUpApplicationState(AndroidTestEnvironment.java:204)
	at org.robolectric.RobolectricTestRunner.beforeTest(RobolectricTestRunner.java:340)
	at org.robolectric.internal.SandboxTestRunner$2.lambda$evaluate$2(SandboxTestRunner.java:281)
	at org.robolectric.internal.bytecode.Sandbox.lambda$runOnMainThread$0(Sandbox.java:101)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

2. 处理

android {
    ...
    testOptions {
        unitTests {
            all {
                it.allJvmArgs = it.allJvmArgs + listOf("-noverify")
            }
        }
    }
}