はじめに
google_mlkitで遊んでいた際に、Windows & AndroidStudio & Emulator(Android)でTextRecognizerを呼び出すとExceptionになることを調査した際の
gradleビルドログの文字化け対処、-Xlint:unchecked詳細の出し方について
(執筆時点では、TextRecognizerがExceptionになる問題は同環境では解決していないので、その対処を記載するものではない)
Gradleのビルドログが文字化け
事象発生時のログ
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode...
Running Gradle task 'assembleDebug'...
�m�[�g:~\pub.dev\google_mlkit_commons-0.5.0\android\src\main\java\com\google_mlkit_commons\InputImageConverter.java�̑���́A���`�F�b�N�܂��͈��S�ł͂���܂���B
�m�[�g:�ڍׂ́A-Xlint:unchecked�I�v�V�������w�肵�čăR���p�C�����Ă��������B
�m�[�g:~\pub.dev\google_mlkit_text_recognition-0.10.0\android\src\main\java\com\google_mlkit_text_recognition\TextRecognizer.java�̑���́A���`�F�b�N�܂��͈��S�ł͂���܂���B
�m�[�g:�ڍׂ́A-Xlint:unchecked�I�v�V�������w�肵�čăR���p�C�����Ă��������B
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Debug service listening on ws://127.0.0.1:55500/zxXMtuhofhk=/ws
Syncing files to device sdk gphone64 x86 64...
対処
環境変数にJAVA_TOOL_OPTIONSを設定
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
- 参考:gradleでJavaのerrorが文字化けする。(https://qiita.com/yonaimineakio/items/5a7cbec9d21c60890c1e)
対処後のログ
ノート:~\pub.dev\google_mlkit_commons-0.5.0\android\src\main\java\com\google_mlkit_commons\InputImageConverter.javaの操作は、未チェックまたは安全ではありません。
ノート:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
ノート:~\pub.dev\google_mlkit_text_recognition-0.10.0\android\src\main\java\com\google_mlkit_text_recognition\TextRecognizer.javaの操作は、未チェックまたは安全ではありません。
ノート:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
Javaのビルド警告(-Xlint:unchecked)の詳細出力
前項のログ
ノート:~\pub.dev\google_mlkit_commons-0.5.0\android\src\main\java\com\google_mlkit_commons\InputImageConverter.javaの操作は、未チェックまたは安全ではありません。
ノート:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
対処:gradleのビルドオプションで詳細を出力するよう設定
./android/build.gradle
...
allprojects {
repositories {
google()
mavenCentral()
}
// add lines
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
...
- 参考:Gradle で「詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください」と表示されたときの対処(https://qiita.com/niwasawa/items/65134c280ed381e03855)
対処後のログ
~\pub.dev\google_mlkit_commons-0.5.0\android\src\main\java\com\google_mlkit_commons\InputImageConverter.java:35: 警告:[unchecked] 無検査キャスト
Map<String, Object> metaData = (Map<String, Object>) imageData.get("metadata");
^
期待値: Map<String,Object>
検出値: Object
警告1個
~\google_mlkit_text_recognition-0.10.0\android\src\main\java\com\google_mlkit_text_recognition\TextRecognizer.java:74: 警告:[unchecked] 無検査キャスト
Map<String, Object> imageData = (Map<String, Object>) call.argument("imageData");
^
期待値: Map<String,Object>
検出値: Object
警告1個