Is there an existing issue for this?
Latest Version Check
Current Behavior
Build fails with Kotlin metadata version mismatch error:
e: file:///.../kotlin-stdlib-2.2.10.jar!/META-INF/kotlin-stdlib.kotlin_module
Module was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 2.2.0, expected version is 2.0.0.
Execution failed for task ':expo:compileReleaseKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
> Internal compiler error. See log for more details
Expected Behavior
Build should complete successfully.
How to Reproduce
Create a new Expo SDK 53 project
Install expo-iap
`npx expo install expo-iap`
Add to plugins in app.config.js
plugins: ["expo-iap"]
Run prebuild and build
`npx expo prebuild --clean --platform android`
`eas build --local --platform android`
Screenshots
Platforms
Bare React Native
expo-iap version
^3.4.0
Expo SDK Version
~53.0.20
React Native Version
0.79.7
Xcode version
No response
iOS target
No response
Android version
No response
Logs
[RUN_GRADLEW] > Task :expo:compileReleaseKotlin FAILED
[RUN_GRADLEW] e: org.jetbrains.kotlin.util.FileAnalysisException: While analysing /private/var/folders/n0/h_d7ry_94dz_vptg40y_23pw0000gn/T/eas-build-local-nodejs/4e68bced-8046-4f5a-a395-e76a6719ecf7/build/node_modules/expo/android/src/main/java/expo/modules/ApplicationLifecycleDispatcher.kt:18:3: java.lang.IllegalArgumentException: source must not be null
[RUN_GRADLEW] at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:57)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:249)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:77)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.buildResolveAndCheckFirViaLightTree(firUtils.kt:88)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.JvmCompilerPipelineKt.compileModuleToAnalyzedFir(jvmCompilerPipeline.kt:319)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.JvmCompilerPipelineKt.compileModulesUsingFrontendIrAndLightTree(jvmCompilerPipeline.kt:118)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:148)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:43)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:103)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:49)
[RUN_GRADLEW] at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
[RUN_GRADLEW] at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:464)
[RUN_GRADLEW] at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:73)
[RUN_GRADLEW] at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:506)
[RUN_GRADLEW] at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
[RUN_GRADLEW] at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
[RUN_GRADLEW] at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
[RUN_GRADLEW] at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:675)
[RUN_GRADLEW] at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92)
[RUN_GRADLEW] at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1660)
[RUN_GRADLEW] at jdk.internal.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
[RUN_GRADLEW] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[RUN_GRADLEW] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[RUN_GRADLEW] at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
[RUN_GRADLEW] at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
[RUN_GRADLEW] at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
[RUN_GRADLEW] at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
[RUN_GRADLEW] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[RUN_GRADLEW] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[RUN_GRADLEW] at java.base/java.lang.Thread.run(Thread.java:833)
[RUN_GRADLEW] Caused by: java.lang.IllegalArgumentException: source must not be null
[RUN_GRADLEW] at org.jetbrains.kotlin.diagnostics.KtDiagnosticReportHelpersKt.requireNotNull(KtDiagnosticReportHelpers.kt:68)
[RUN_GRADLEW] at org.jetbrains.kotlin.diagnostics.KtDiagnosticReportHelpersKt.reportOn(KtDiagnosticReportHelpers.kt:39)
[RUN_GRADLEW] at org.jetbrains.kotlin.diagnostics.KtDiagnosticReportHelpersKt.reportOn$default(KtDiagnosticReportHelpers.kt:31)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.checkers.expression.FirIncompatibleClassExpressionChecker.checkSourceElement(FirIncompatibleClassExpressionChecker.kt:50)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.checkers.expression.FirIncompatibleClassExpressionChecker.checkType$checkers(FirIncompatibleClassExpressionChecker.kt:42)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.checkers.type.FirIncompatibleClassTypeChecker.check(FirIncompatibleClassTypeChecker.kt:17)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.components.TypeCheckersDiagnosticComponent.check(TypeCheckersDiagnosticComponent.kt:81)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.components.TypeCheckersDiagnosticComponent.visitResolvedTypeRef(TypeCheckersDiagnosticComponent.kt:53)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.components.TypeCheckersDiagnosticComponent.visitResolvedTypeRef(TypeCheckersDiagnosticComponent.kt:19)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.types.FirResolvedTypeRef.accept(FirResolvedTypeRef.kt:28)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.CheckerRunningDiagnosticCollectorVisitor.checkElement(CheckerRunningDiagnosticCollectorVisitor.kt:24)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitResolvedTypeRef(AbstractDiagnosticCollectorVisitor.kt:248)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitResolvedTypeRef(AbstractDiagnosticCollectorVisitor.kt:30)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.types.FirResolvedTypeRef.accept(FirResolvedTypeRef.kt:28)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.acceptChildren(FirSimpleFunctionImpl.kt:63)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:38)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:311)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitSimpleFunction(AbstractDiagnosticCollectorVisitor.kt:118)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitSimpleFunction(AbstractDiagnosticCollectorVisitor.kt:30)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.accept(FirSimpleFunction.kt:51)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.acceptChildren(FirRegularClassImpl.kt:63)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:38)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:311)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:87)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:92)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:30)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.acceptChildren(FirFileImpl.kt:57)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:38)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:1151)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:30)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.declarations.FirFile.accept(FirFile.kt:42)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector.collectDiagnostics(AbstractDiagnosticCollector.kt:36)
[RUN_GRADLEW] at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:34)
[RUN_GRADLEW] ... 34 more
[RUN_GRADLEW] e: file:///Users/kimwash/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/2.2.10/30de6faa127a4a012db8e71bf1b9c0a99b1402b2/kotlin-stdlib-2.2.10.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 2.2.0, expected version is 2.0.0.
[RUN_GRADLEW] e: file:///Users/kimwash/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/2.2.10/30de6faa127a4a012db8e71bf1b9c0a99b1402b2/kotlin-stdlib-2.2.10.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 2.2.0, expected version is 2.0.0.
[RUN_GRADLEW] e: file:///Users/kimwash/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/2.2.10/30de6faa127a4a012db8e71bf1b9c0a99b1402b2/kotlin-stdlib-2.2.10.jar!/META-INF/kotlin-stdlib.kotlin_module Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 2.2.0, expected version is 2.0.0.
[RUN_GRADLEW] > Task :react-native-gesture-handler:configureCMakeRelWithDebInfo[arm64-v8a]
[RUN_GRADLEW] [Incubating] Problems report is available at: file:///private/var/folders/n0/h_d7ry_94dz_vptg40y_23pw0000gn/T/eas-build-local-nodejs/4e68bced-8046-4f5a-a395-e76a6719ecf7/build/apps/expo/android/build/reports/problems/problems-report.html
[RUN_GRADLEW] Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
[RUN_GRADLEW] You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
[RUN_GRADLEW] For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
[RUN_GRADLEW] 816 actionable tasks: 815 executed, 1 up-to-date
[RUN_GRADLEW] FAILURE: Build failed with an exception.
[RUN_GRADLEW] * What went wrong:
[RUN_GRADLEW] Execution failed for task ':expo:compileReleaseKotlin'.
[RUN_GRADLEW] > A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
[RUN_GRADLEW] > Internal compiler error. See log for more details
[RUN_GRADLEW] * Try:
[RUN_GRADLEW] > Run with --stacktrace option to get the stack trace.
[RUN_GRADLEW] > Run with --info or --debug option to get more log output.
[RUN_GRADLEW] > Run with --scan to get full insights.
[RUN_GRADLEW] > Get more help at https://help.gradle.org.
[RUN_GRADLEW] BUILD FAILED in 3m 1s
[RUN_GRADLEW] Error: Gradle build failed with unknown error. See logs for the "Run gradlew" phase for more information.
Additional Context
Dependency Chain
expo-iap 3.4.0
└── openiap-google 1.3.21
└── billing-ktx 8.1.0+
└── kotlin-stdlib 2.2.10 (requires Kotlin 2.2.0 compiler)
The Problem
- Expo SDK 53 uses Kotlin 2.0.21
- Google Play Billing Library 8.1.0 (released Nov 2025) requires Kotlin 2.2.0
- The release notes state "supports Kotlin 2.2.0", but it's actually mandatory, not optional
| expo-iap |
openiap-google |
billing-ktx |
Kotlin Required |
| 3.0.x |
1.1.12 |
8.0.x |
2.0.21 ✅ |
| 3.1.x+ |
1.3.x |
8.1.0+ |
2.2.0 ❌ |
Verified via Maven Central.
Temporary fix
I downgraded version to 3.0.0. I looked up elease notes but theres too many 'v8 support' phrases.
Check homepage for actual versioning guide. 😭
Is there an existing issue for this?
Latest Version Check
Current Behavior
Build fails with Kotlin metadata version mismatch error:
Expected Behavior
Build should complete successfully.
How to Reproduce
Screenshots
Platforms
Bare React Native
expo-iap version
^3.4.0
Expo SDK Version
~53.0.20
React Native Version
0.79.7
Xcode version
No response
iOS target
No response
Android version
No response
Logs
Additional Context
Dependency Chain
expo-iap 3.4.0
└── openiap-google 1.3.21
└── billing-ktx 8.1.0+
└── kotlin-stdlib 2.2.10 (requires Kotlin 2.2.0 compiler)
The Problem
Verified via Maven Central.
Temporary fix
I downgraded version to 3.0.0. I looked up elease notes but theres too many 'v8 support' phrases.
Check homepage for actual versioning guide. 😭