Files
fileworkbench/docs/HOTFIX-0.2.1.md
T
zemion db873063f8
Verify source and build Android / android (push) Canceled after 0s
initial commit v 0.2.0
2026-09-24 22:49:27 +02:00

2.6 KiB

0.2.1 — PDF instrumentation-test compilation fix

The reported failure was in :androidApp:compileDebugAndroidTestKotlin, at the PdfDocument().use expression in ViewerSmokeTest.kt.

Cause

Android's android.graphics.pdf.PdfDocument has a close() method, but does not implement java.io.Closeable or java.lang.AutoCloseable. The Kotlin standard library's use extensions require one of these interfaces. A method named close is not sufficient. The type-parameter R diagnostic is a consequence of the invalid receiver; explicit type arguments or dependency upgrades are not the fix.

Correction

The PDF fixture now uses explicit try/finally: finish the started page, write the PDF through an output stream (which can still use use), and close the document. A unique temporary fixture is deleted even when setup or rendering throws; the render client also retains explicit cleanup. Existing test assertions are retained.

No runtime feature or dependency changes were made. The complete source release increments versionCode to 3 / versionName to 0.2.1 and updates validation documents. The one-file patch changes only ViewerSmokeTest.kt, so it can be applied without updating version metadata or replacing other locally modified files.

Apply to a local 0.2.0 checkout

Replace androidApp/src/androidTest/kotlin/dev/fileworkbench/android/ViewerSmokeTest.kt with the supplied fixed file, or run git apply with the supplied one-file patch. The patch was checked against the exact test in the supplied 0.2.0 source archive.

Then run from PowerShell at the repository root:

.\gradlew.bat :androidApp:compileDebugAndroidTestKotlin
.\gradlew.bat :core:jvmTest :platform-jvm:test :androidApp:assembleDebug :androidApp:assembleDebugAndroidTest :androidApp:lintDebug

The first command retries the failed compilation task. The second continues full build validation. These do not run the instrumentation tests on a device; that requires :androidApp:connectedDebugAndroidTest with a connected device/emulator.

Verification boundary

See VALIDATION.md. The portable checks and syntax checks passed here. The Android compilation retry stopped at Gradle-wrapper download with a DNS error before the compiler ran; no APK or device-test success is claimed.

Primary API references