Skip to content

Upgrade jnigen's kotlinx-metadata-jvm to kotlin-metadata-jvm #3269

Closed

Description

@ryanheise

I'm getting this when trying to run jnigen on newer libraries;

Provided Metadata instance has version 2.2.0, while maximum supported version is 2.1.0. To support newer versions, update the kotlinx-metadata-jvm library.

For example, add this dependency to gradle:

    implementation("com.google.mlkit:genai-speech-recognition:1.0.0-alpha1")

and run this jnigen script in tool/jnigen.dart:

import 'dart:io';

import 'package:jnigen/jnigen.dart';

void main(List<String> args) {
  final packageRoot = Platform.script.resolve('../');
  generateJniBindings(
    Config(
      // summarizerOptions: SummarizerOptions(backend: SummarizerBackend.asm),
      outputConfig: OutputConfig(
        dartConfig: DartCodeOutputConfig(
          path: packageRoot.resolve('lib/mlkit_asr.g.dart'),
          structure: OutputStructure.singleFile,
        ),
      ),
      androidSdkConfig: AndroidSdkConfig(
        addGradleDeps: true,
        androidExample: 'example',
      ),
      classes: [
        'com.google.mlkit.genai.speechrecognition.SpeechRecognition',
        'com.google.mlkit.genai.speechrecognition.SpeechRecognizer',
        'com.google.mlkit.genai.speechrecognition.SpeechRecognizerOptions',
        'com.google.mlkit.genai.speechrecognition.SpeechRecognizerRequest',
        'com.google.mlkit.genai.speechrecognition.SpeechRecognizerResponse',
      ],
    ),
  );
}

Activity

  1. removed
    needs-triageNeeds triage from the team. Remove this label once triaged.
    on Apr 1, 2026
  2. self-assigned this
    on Apr 1, 2026
  3. added this to the JNI / JNIgen GA milestone on Apr 1, 2026
  4. liamappelbe commented on Apr 1, 2026

    @liamappelbe
    Contributor

    @ryanheise Is it a warning message, or is it a blocking error that prevents you from generating bindings?

  5. ryanheise commented on Apr 1, 2026

    @ryanheise
    Author

    It prevents bindings from being generated.

  6. yanshouwang commented on Apr 2, 2026

    @yanshouwang

    Flutter 3.38.10 has upgrade Kotlin to 2.2.20,and some Android projects already used 2.3.0, like LiteRT-LM,this issue prevents us to use jnigen to generate bindings for these projects.

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

Metadata

Metadata

Assignees

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions