Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to build TextRecognition in release mode on Android when targeting API 34 without adding all langages #528

Open
Tom3652 opened this issue Sep 23, 2023 · 9 comments
Assignees
Labels
Text Recognition Issues corresponding to Text Recognition API

Comments

@Tom3652
Copy link

Tom3652 commented Sep 23, 2023

PLEASE FILL THIS before submitting your issue. We have noticed that many people do NOT know how to report an issue, please follow this guide to report your issue, otherwise we wont be able to help you.

NOTE: Did you try our example app? If not, then stop try our example app and try to reproduce with it? If your app is failing and not the example app then it might be something related to your app. If the example app also fails then it is more likely for us to help you.

Title: In a few words summarize your issue. This is a short title.

Describe the bug

As the title said :

ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /Users/foxtom/StudioProjects/myapp/build/app/outputs/mapping/release/missing_rules.txt.
ERROR: R8: Missing class com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions$Builder (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions$Builder (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions$Builder (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions$Builder (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))
Missing class com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions (referenced from: com.google.mlkit.vision.text.TextRecognizer com.google_mlkit_text_recognition.TextRecognizer.initialize(io.flutter.plugin.common.MethodCall))

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:minifyReleaseWithR8'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.R8Task$R8Runnable
   > Compilation failed to complete

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 30s

To Reproduce

Use targetSdkVersion 34 in your app/build.gradle file and run flutter build apk

NOTE: Did you try our example app? If not, then stop try our example app and try to reproduce with it? If your app is failing and not the example app then it might be something related to your app. If the example app also fails then it is more likely for us to help you.

Expected behavior

The app should build without requiring to add :

implementation 'com.google.mlkit:text-recognition-chinese:16.0.0'
    implementation 'com.google.mlkit:text-recognition-devanagari:16.0.0'
    implementation 'com.google.mlkit:text-recognition-japanese:16.0.0'
    implementation 'com.google.mlkit:text-recognition-korean:16.0.0'

Note : adding the above lines allow me to build with API 34, but also add an extra 30MB size to the app that i don't need.

Platform (please complete the following information):

  • OS: Android 10
  • Device: Motorola
  • Flutter/Dart Version : 3.13.5
  • Plugin version : google_mlkit_text_recognition: 0.10.0
@IAmJulianAcosta
Copy link

IAmJulianAcosta commented Nov 5, 2023

I'm getting this one too. Using latest version 0.11.1

@IAmJulianAcosta
Copy link

@Tom3652 Adding the following to /android/app/proguard-rules.pro fixed the error for me:

-dontwarn com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions
-dontwarn com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions
-dontwarn com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions
-dontwarn com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions$Builder
-dontwarn com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions

@bensonarafat
Copy link
Collaborator

finding a solution to this. 💡

@Tom3652
Copy link
Author

Tom3652 commented Nov 10, 2023

@IAmJulianAcosta thanks this is working !

@gerken-tss
Copy link

@IAmJulianAcosta
While I appreciate your fix, I was wondering what this does? Why are there suddenly missing files and why do we need to manually add those lines to this file? Is this safe? Can we revert this in the future? What is this all about?

@IAmJulianAcosta
Copy link

@gerken-tss I don't remember where did I get it, IIRC, what it does is telling the compiler? that it's fine if it doesn't find the files so the build doesn't break

@fbernaly fbernaly added the Text Recognition Issues corresponding to Text Recognition API label Apr 17, 2024
@keezysilencer
Copy link

Is there an alternative solution?

@arnabonetraker
Copy link

Faced this issue. Without adding those languages it should compile. For now adding the dontwarn in progruard works, but we do need a fix for this.

@Rea-Mart
Copy link

Rea-Mart commented Jan 6, 2025

after applying @IAmJulianAcosta 's steps, it still gave the error for me. Adding minifyEnabled true and proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' inside android>buildTypes>release fixed it!

android {
  buildTypes {
          release {
              // TODO: Add your own signing config for the release build.
              // Signing with the debug keys for now, so `flutter run --release` works.
              signingConfig = signingConfigs.debug
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
          }
      }
}

@bensonarafat bensonarafat self-assigned this Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Text Recognition Issues corresponding to Text Recognition API
Projects
None yet
Development

No branches or pull requests

8 participants