Skip to content

Fix Android plugin filename casing so builds work on case-sensitive filesystems - #106

Open
mthlemos wants to merge 1 commit into
microblink:masterfrom
mthlemos:fix-android-file-name
Open

mthlemos wants to merge 1 commit into
microblink:masterfrom
mthlemos:fix-android-file-name

Conversation

@mthlemos

Copy link
Copy Markdown

Fixes #105.

Problem

On case-sensitive filesystems (Linux, so most Docker images and CI runners), flutter build fails with:

The plugin `blinkid_flutter` doesn't have a main class defined in
.../com/microblink/blinkid/flutter/BlinkIdFlutterPlugin.java or
.../com/microblink/blinkid/flutter/BlinkIdFlutterPlugin.kt.

pubspec.yaml declares pluginClass: BlinkIdFlutterPlugin, but the file on disk was named BlinkidFlutterPlugin.kt, with a lowercase i and d. The Kotlin class inside the file was already spelled correctly, so only the filename was wrong.

Flutter resolves the main class through an exact, case-sensitive path lookup derived from pluginClass. It does not scan the directory. macOS (APFS) and Windows (NTFS) silently tolerate the mismatch, which is why this never showed up in local development.

This reproduces on both 8000.0.0 and 8001.0.0.

Change

Three renames under BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/, with no content changes:

  • BlinkidFlutterPlugin.ktBlinkIdFlutterPlugin.kt
  • BlinkidDeserializationUtils.ktBlinkIdDeserializationUtils.kt
  • BlinkidSerializationUtils.ktBlinkIdSerializationUtils.kt

Only the first rename fixes the bug. The other two were just renamed for consistency.

@mthlemos
mthlemos requested a review from a team as a code owner September 15, 2026 09:00
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

💤 Files selected but had no reviewable changes (3)
  • BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/BlinkIdDeserializationUtils.kt
  • BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/BlinkIdFlutterPlugin.kt
  • BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/BlinkIdSerializationUtils.kt
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 02973811-387f-4170-9699-7a0bf6c4d4e3

📥 Commits

Reviewing files that changed from the base of the PR and between 3c1c068 and b4ffc82.

📒 Files selected for processing (3)
  • BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/BlinkIdDeserializationUtils.kt
  • BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/BlinkIdFlutterPlugin.kt
  • BlinkID/android/src/main/kotlin/com/microblink/blinkid/flutter/BlinkIdSerializationUtils.kt

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Android build fails on case-sensitive filesystems (Linux/CI): BlinkidFlutterPlugin.kt filename doesn't match declared pluginClass: BlinkIdFlutterPlugin

2 participants