@RunWith(RobolectricTestRunner::class)
@Config(sdk = [33])
@GraphicsMode(GraphicsMode.Mode.NATIVE)
class ExampleUnitTest {
@Test
fun test() {
// print java version
println("System.getProperty(\"java.version\"):" + System.getProperty("java.version"))
// java home
println("System.getProperty(\"java.home\"):" + System.getProperty("java.home"))
System.setProperty("robolectric.screenshot.hwrdr.native", "true")
val activityScenario = launch(MainActivity::class.java)
activityScenario.onActivity { activity ->
val bitmap = Bitmap.createBitmap(
activity.window.decorView.width,
activity.window.decorView.height,
Bitmap.Config.ARGB_8888
)
PixelCopy.request(activity.window, bitmap, { copyResult ->
if (copyResult == PixelCopy.SUCCESS) {
// success
println("success $copyResult")
}
}, Handler(Looper.getMainLooper()))
bitmap.getColor(0, 0)
}
}
}
./gradlew :app:testDebugUnitTest
System.getProperty("java.version"):17.0.7
System.getProperty("java.home"):../Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-1/231.9392.1.2311.11076708/Android Studio.app/Contents/jbr/Contents/Home
java.lang.NoClassDefFoundError: java/nio/NioUtils
at android.media.ImageReader$SurfaceImage$SurfacePlane.clearBuffer(ImageReader.java:1389)
at android.media.ImageReader$SurfaceImage.clearSurfacePlanes(ImageReader.java:1333)
at android.media.ImageReader.releaseImage(ImageReader.java:690)
at android.media.ImageReader$SurfaceImage.close(ImageReader.java:1171)
at android.media.ImageReader.close(ImageReader.java:801)
at org.robolectric.shadows.HardwareRenderingScreenshot.takeScreenshot(HardwareRenderingScreenshot.java:90)
at org.robolectric.shadows.ShadowPixelCopy.takeScreenshot(ShadowPixelCopy.java:171)
at org.robolectric.shadows.ShadowPixelCopy.request(ShadowPixelCopy.java:96)
at org.robolectric.shadows.ShadowPixelCopy.request(ShadowPixelCopy.java:74)
at android.view.PixelCopy.request(PixelCopy.java)
at com.github.takahirom.robolectric.shadow.ExampleUnitTest.test$lambda$1(ExampleUnitTest.kt:33)
at androidx.test.core.app.ActivityScenario.lambda$onActivity$2$androidx-test-core-app-ActivityScenario(ActivityScenario.java:789)
at androidx.test.core.app.ActivityScenario$$ExternalSyntheticLambda2.run(D8$$SyntheticClass)
at androidx.test.core.app.ActivityScenario.onActivity(ActivityScenario.java:799)
at com.github.takahirom.robolectric.shadow.ExampleUnitTest.test(ExampleUnitTest.kt:27)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.robolectric.RobolectricTestRunner$HelperTestRunner$1.evaluate(RobolectricTestRunner.java:588)
at org.robolectric.internal.SandboxTestRunner$2.lambda$evaluate$2(SandboxTestRunner.java:290)
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)
Caused by: java.lang.ClassNotFoundException: java.nio.NioUtils
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at org.robolectric.internal.bytecode.SandboxClassLoader.loadClass(SandboxClassLoader.java:138)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at android.media.ImageReader$SurfaceImage$SurfacePlane.$$robo$$android_media_ImageReader_SurfaceImage_SurfacePlane$clearBuffer(ImageReader.java:1389)
at android.media.ImageReader$SurfaceImage$SurfacePlane.clearBuffer(ImageReader.java)
at android.media.ImageReader$SurfaceImage.$$robo$$android_media_ImageReader_SurfaceImage$clearSurfacePlanes(ImageReader.java:1333)
at android.media.ImageReader$SurfaceImage.clearSurfacePlanes(ImageReader.java)
at android.media.ImageReader.$$robo$$android_media_ImageReader$releaseImage(ImageReader.java:690)
at android.media.ImageReader.releaseImage(ImageReader.java)
at android.media.ImageReader$SurfaceImage.$$robo$$android_media_ImageReader_SurfaceImage$close(ImageReader.java:1171)
at android.media.ImageReader$SurfaceImage.close(ImageReader.java)
at android.media.ImageReader.$$robo$$android_media_ImageReader$close(ImageReader.java:801)
at android.media.ImageReader.close(ImageReader.java)
at org.robolectric.shadows.HardwareRenderingScreenshot.takeScreenshot(HardwareRenderingScreenshot.java:90)
at org.robolectric.shadows.ShadowPixelCopy.takeScreenshot(ShadowPixelCopy.java:171)
at org.robolectric.shadows.ShadowPixelCopy.request(ShadowPixelCopy.java:96)
at org.robolectric.shadows.ShadowPixelCopy.request(ShadowPixelCopy.java:74)
at android.view.PixelCopy.request(PixelCopy.java)
at com.github.takahirom.robolectric.shadow.ExampleUnitTest.test$lambda$1(ExampleUnitTest.kt:33)
at androidx.test.core.app.ActivityScenario.lambda$onActivity$2$androidx-test-core-app-ActivityScenario(ActivityScenario.java:789)
at androidx.test.core.app.ActivityScenario$$ExternalSyntheticLambda2.run(D8$$SyntheticClass)
at androidx.test.core.app.ActivityScenario.onActivity(ActivityScenario.java:799)
at com.github.takahirom.robolectric.shadow.ExampleUnitTest.test(ExampleUnitTest.kt:27)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
... 12 more