docs: add HANDOFF.md with project status and memory notes

This commit is contained in:
Ubuntu
2026-05-19 09:06:32 +00:00
parent 37bb8bfe72
commit 5071c445ac
5 changed files with 410 additions and 38 deletions

View File

@@ -0,0 +1,12 @@
## CUA Smoke Test - Working E2E
- **Azure endpoint**: `info-mjnxtt51-eastus2.cognitiveservices.azure.com` (NOT `vibe-dev-ai`)
- **Env file**: `~/.env.d/azure-openai.env`
- **Model**: `gpt-5.4` (vision capable, use `max_completion_tokens` not `max_tokens`)
- **Both scenarios pass**: `send_message` (7 steps) and `multi_turn` (13 steps)
- **Key fix**: Added `{"type": "send"}` action that uses uiautomator XML to find send button coords automatically. Vision models can't reliably tap the bottom-right send button (off by ~80px Y).
- **CI secrets set**: `AZURE_OPENAI_API_KEY` and `AZURE_OPENAI_ENDPOINT` on `dzianisv/opencode-mobile`
- **Emulator**: AVD `test`, API 34 x86_64, at `/tmp/android-sdk/`. KVM required.
- **Connection setup**: Must dismiss keyboard before tapping Connect button (it's obscured otherwise)
- **App behavior**: Enter key inserts newline (doesn't send). Must use send button.

67
HANDOFF.md Normal file
View File

@@ -0,0 +1,67 @@
# Handoff: OpenCode Mobile App
## Status: CUA E2E Tests Working, v0.2.0 Release Triggered
## What Was Done
### 1. CUA (Computer-Use Agent) E2E Test Infrastructure
- Built `scripts/android-cua-smoke.py` — a vision-LLM-powered Android E2E test that drives the app via ADB screenshots + AI actions
- Two scenarios pass reliably: `send_message` (7 steps) and `multi_turn` (13 steps)
- Added custom `{"type": "send"}` action that auto-locates the send button via uiautomator XML (solves coordinate accuracy issues with vision models)
- Uses **Azure AI Services gpt-5.4** for vision inference
### 2. CI/CD
- `.github/workflows/cua-smoke.yml` — GitHub Actions workflow for emulator + CUA test
- `.github/workflows/build.yml` — Builds APK, creates GitHub Release on tag push
- `.github/workflows/publish-play-store.yml` — Fastlane Play Store publish
- GitHub secrets set: `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT`
- Tagged `v0.2.0` — CI build + release workflow triggered
### 3. App Features (prior sessions)
- SSE reconnect with exponential backoff
- Notification support
- Message deduplication
- Biometric auth gate (disabled on emulator)
- Server connection management UI
## Key Technical Details
### Azure AI Services (LLM API)
- **Correct endpoint**: `https://info-mjnxtt51-eastus2.cognitiveservices.azure.com`
- **DO NOT USE**: `vibe-dev-ai.cognitiveservices.azure.com` (has no deployments, only model catalog)
- **Env file**: `~/.env.d/azure-openai.env`
- **Available models**: gpt-5.4, gpt-5.2, gpt-5.1, gpt-4.1, grok-4, deepseek-r1, kimi-k2.5
- **API quirk**: Use `max_completion_tokens` (NOT `max_tokens`) for gpt-5.x models
### Android Emulator
- SDK at `/tmp/android-sdk/` (may need reinstall if /tmp is cleared)
- AVD name: `test`, API 34 x86_64, KVM required
- Start: `emulator -avd test -no-window -no-audio -no-boot-anim -gpu swiftshader_indirect -no-snapshot`
- Package: `ai.opencode.mobile`
### CUA Script Learnings
- Vision models (gpt-5.4) consistently mis-estimate Y coordinates by ~80px for bottom-of-screen elements
- Solution: `{"type": "send"}` action uses uiautomator XML to find the rightmost clickable element in the bottom bar
- Enter key inserts newline in this app (doesn't send) — model must dismiss keyboard + tap send button
- Screen resolution (1080x2400) included in prompt context helps coordinate accuracy
- Screenshot retry (3 attempts, 30s timeout) needed for emulator under load
### Server Connection
- OpenCode server: `100.108.64.76:4096` (Tailscale, hostname `openclaw-dev-1`)
- Must dismiss keyboard before tapping Connect button (keyboard obscures it)
- Model: `gpt-5.3-chat-latest` (via GitHub Copilot provider)
## What's Next
1. **Verify v0.2.0 release** — check CI at https://github.com/dzianisv/opencode-mobile/actions
2. **Run CUA in CI** — the `cua-smoke.yml` workflow needs a running opencode server to connect to (currently targets Tailscale IP which won't be reachable from GitHub runners). Options:
- Mock server in CI
- Use a public opencode server endpoint
- Run as self-hosted runner on the dev VM
3. **Add accessibility labels** — add `content-desc="Send"` to the send button in the app for better CUA reliability
4. **More scenarios** — settings toggle, reconnect after server restart, slash commands
## Repo & Auth
- Repo: `dzianisv/opencode-mobile`
- GitHub auth: `source ~/.env.d/github-dzianisv.env`
- Upstream issue: `anomalyco/opencode#10288`

View File

@@ -0,0 +1,144 @@
kotlin version: 2.1.20
error message: org.jetbrains.kotlin.util.FileAnalysisException: While analysing /home/azureuser/workspace/opencode-mobile/node_modules/react-native-screens/android/src/versioned/edge-to-edge/latest/com/swmansion/rnscreens/utils/EdgeToEdgeDetector.kt:10:13: org.jetbrains.kotlin.utils.exceptions.KotlinIllegalArgumentExceptionWithAttachments: Exception in expression checkers
at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:57)
at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:251)
at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:68)
at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:77)
at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.executePhase(JvmFrontendPipelinePhase.kt:167)
at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.executePhase(JvmFrontendPipelinePhase.kt:56)
at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:68)
at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:58)
at org.jetbrains.kotlin.config.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:215)
at org.jetbrains.kotlin.config.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:111)
at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:28)
at org.jetbrains.kotlin.config.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:62)
at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.runPhasedPipeline(AbstractCliPipeline.kt:106)
at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.execute(AbstractCliPipeline.kt:65)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:61)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:36)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:80)
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:337)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:466)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:75)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:514)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:431)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:310)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:137)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:678)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1805)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: org.jetbrains.kotlin.utils.exceptions.KotlinIllegalArgumentExceptionWithAttachments: Exception in expression checkers
at org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckersDiagnosticComponent.visitTryExpression(ExpressionCheckersDiagnosticComponent.kt:404)
at org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckersDiagnosticComponent.visitTryExpression(ExpressionCheckersDiagnosticComponent.kt:25)
at org.jetbrains.kotlin.fir.expressions.FirTryExpression.accept(FirTryExpression.kt:32)
at org.jetbrains.kotlin.fir.analysis.collectors.CheckerRunningDiagnosticCollectorVisitor.checkElement(CheckerRunningDiagnosticCollectorVisitor.kt:24)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitElement(AbstractDiagnosticCollectorVisitor.kt:47)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitElement(AbstractDiagnosticCollectorVisitor.kt:29)
at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitTryExpression(FirVisitor.kt:129)
at org.jetbrains.kotlin.fir.expressions.FirTryExpression.accept(FirTryExpression.kt:32)
at org.jetbrains.kotlin.fir.expressions.impl.FirBooleanOperatorExpressionImpl.acceptChildren(FirBooleanOperatorExpressionImpl.kt:40)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitAnnotationContainer(AbstractDiagnosticCollectorVisitor.kt:60)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitAnnotationContainer(AbstractDiagnosticCollectorVisitor.kt:29)
at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitStatement(FirDefaultVisitor.kt:30)
at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitExpression(FirDefaultVisitor.kt:33)
at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitBooleanOperatorExpression(FirDefaultVisitor.kt:48)
at org.jetbrains.kotlin.fir.expressions.FirBooleanOperatorExpression.accept(FirBooleanOperatorExpression.kt:31)
at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.acceptChildren(FirPropertyImpl.kt:76)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitProperty(AbstractDiagnosticCollectorVisitor.kt:918)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitProperty(AbstractDiagnosticCollectorVisitor.kt:29)
at org.jetbrains.kotlin.fir.declarations.FirProperty.accept(FirProperty.kt:58)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.acceptChildren(FirRegularClassImpl.kt:63)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:604)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.acceptChildren(FirFileImpl.kt:57)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:1213)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:29)
at org.jetbrains.kotlin.fir.declarations.FirFile.accept(FirFile.kt:42)
at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector.collectDiagnostics(AbstractDiagnosticCollector.kt:36)
at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:37)
... 41 more
Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: /tmp/android-sdk/platforms/android-36/android.jar (No such file or directory)
at org.jetbrains.kotlin.com.intellij.util.io.FileAccessorCache.createHandle(FileAccessorCache.java:56)
at org.jetbrains.kotlin.com.intellij.util.io.FileAccessorCache.get(FileAccessorCache.java:39)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarHandler.contentsToByteArray(FastJarHandler.kt:112)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarVirtualFile.contentsToByteArray(FastJarVirtualFile.kt:89)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:141)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:116)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass$lambda$8$lambda$7(KotlinCliJavaFileManagerImpl.kt:144)
at org.jetbrains.kotlin.load.java.structure.impl.classFiles.ClassifierResolutionContext.resolveClass(ClassifierResolutionContext.kt:58)
at org.jetbrains.kotlin.load.java.structure.impl.classFiles.ClassifierResolutionContext.resolveByInternalName$resolution_common_jvm(ClassifierResolutionContext.kt:99)
at org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass.convertInternalNameToClassifierType$lambda$2(BinaryJavaClass.kt:194)
at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:98)
at org.jetbrains.kotlin.load.java.structure.impl.classFiles.PlainJavaClassifierType.getClassifierResolverResult(Types.kt:39)
at org.jetbrains.kotlin.load.java.structure.impl.classFiles.PlainJavaClassifierType.getClassifier(Types.kt:41)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toConeKotlinTypeForFlexibleBound(JavaTypeConversion.kt:192)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toConeKotlinTypeForFlexibleBound$default(JavaTypeConversion.kt:184)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toConeTypeProjection(JavaTypeConversion.kt:117)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toConeKotlinType(JavaTypeConversion.kt:90)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toConeKotlinType$default(JavaTypeConversion.kt:85)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toFirResolvedTypeRef(JavaTypeConversion.kt:78)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.resolveIfJavaType(JavaTypeConversion.kt:54)
at org.jetbrains.kotlin.fir.java.JavaTypeConversionKt.toConeKotlinTypeProbablyFlexible(JavaTypeConversion.kt:63)
at org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement.toConeKotlinType(SignatureEnhancement.kt:977)
at org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement.enhance(SignatureEnhancement.kt:966)
at org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement.enhance$default(SignatureEnhancement.kt:962)
at org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement.enhanceSuperType(SignatureEnhancement.kt:770)
at org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement.enhanceSuperTypes(SignatureEnhancement.kt:724)
at org.jetbrains.kotlin.fir.java.declarations.FirJavaClass.superTypeRefs_delegate$lambda$2(FirJavaClass.kt:105)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
at org.jetbrains.kotlin.fir.java.declarations.FirJavaClass.getSuperTypeRefs(FirJavaClass.kt:97)
at org.jetbrains.kotlin.fir.declarations.utils.FirDeclarationUtilKt.getSuperConeTypes(FirDeclarationUtil.kt:31)
at org.jetbrains.kotlin.fir.types.ConeTypeContext.supertypes(ConeTypeContext.kt:276)
at org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache.computeSupertypesMap(FirCorrespondingSupertypesCache.kt:139)
at org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache.cache$lambda$0(FirCorrespondingSupertypesCache.kt:28)
at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:57)
at org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache.getCorrespondingSupertypes(FirCorrespondingSupertypesCache.kt:47)
at org.jetbrains.kotlin.fir.types.ConeTypeContext.fastCorrespondingSupertypes(ConeTypeContext.kt:72)
at org.jetbrains.kotlin.types.AbstractTypeChecker.collectAllSupertypesWithGivenTypeConstructor(AbstractTypeChecker.kt:656)
at org.jetbrains.kotlin.types.AbstractTypeChecker.collectAndFilter(AbstractTypeChecker.kt:697)
at org.jetbrains.kotlin.types.AbstractTypeChecker.findCorrespondingSupertypes(AbstractTypeChecker.kt:731)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:418)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:325)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:274)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:263)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:210)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:204)
at org.jetbrains.kotlin.fir.analysis.checkers.FirHelpersKt.isSupertypeOf(FirHelpers.kt:300)
at org.jetbrains.kotlin.fir.analysis.checkers.FirHelpersKt.isSubtypeOfThrowable(FirHelpers.kt:291)
at org.jetbrains.kotlin.fir.analysis.checkers.expression.FirCatchParameterChecker.check(FirCatchParameterChecker.kt:54)
at org.jetbrains.kotlin.fir.analysis.checkers.expression.FirCatchParameterChecker.check(FirCatchParameterChecker.kt:26)
at org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckersDiagnosticComponent.visitTryExpression(ExpressionCheckersDiagnosticComponent.kt:392)
... 73 more
Caused by: java.io.FileNotFoundException: /tmp/android-sdk/platforms/android-36/android.jar (No such file or directory)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:344)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:213)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystem$cachedOpenFileHandles$1.createAccessor(FastJarFileSystem.kt:31)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystem$cachedOpenFileHandles$1.createAccessor(FastJarFileSystem.kt:28)
at org.jetbrains.kotlin.com.intellij.util.io.FileAccessorCache.createHandle(FileAccessorCache.java:45)
... 122 more

View File

@@ -0,0 +1,184 @@
kotlin version: 2.1.20
error message: org.jetbrains.kotlin.util.FileAnalysisException: While analysing /home/azureuser/workspace/opencode-mobile/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/typedarray/ConcreteTypedArrays.kt:8:11: java.lang.IllegalStateException: Could not read file: /tmp/android-sdk/platforms/android-36/android.jar!/java/lang/IndexOutOfBoundsException.class; size in bytes: 679; file type: CLASS
at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:57)
at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:251)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFile(FirDeclarationsResolveTransformer.kt:1757)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformFile(FirAbstractBodyResolveTransformerDispatcher.kt:57)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformFile(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:46)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:41)
at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:46)
at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:48)
at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:36)
at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runResolution(analyse.kt:24)
at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:76)
at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.executePhase(JvmFrontendPipelinePhase.kt:167)
at org.jetbrains.kotlin.cli.pipeline.jvm.JvmFrontendPipelinePhase.executePhase(JvmFrontendPipelinePhase.kt:56)
at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:68)
at org.jetbrains.kotlin.cli.pipeline.PipelinePhase.phaseBody(PipelinePhase.kt:58)
at org.jetbrains.kotlin.config.phaser.SimpleNamedCompilerPhase.phaseBody(CompilerPhase.kt:215)
at org.jetbrains.kotlin.config.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:111)
at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:28)
at org.jetbrains.kotlin.config.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:62)
at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.runPhasedPipeline(AbstractCliPipeline.kt:106)
at org.jetbrains.kotlin.cli.pipeline.AbstractCliPipeline.execute(AbstractCliPipeline.kt:65)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:61)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecutePhased(K2JVMCompiler.kt:36)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:80)
at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:337)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:466)
at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:75)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:514)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:431)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:310)
at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:137)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:678)
at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1805)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.IllegalStateException: Could not read file: /tmp/android-sdk/platforms/android-36/android.jar!/java/lang/IndexOutOfBoundsException.class; size in bytes: 679; file type: CLASS
at org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass$Factory.logFileReadingErrorMessage(VirtualFileKotlinClass.kt:77)
at org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass$Factory.create$lambda$3(VirtualFileKotlinClass.kt:68)
at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:90)
at org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass$Factory.create$frontend_common_jvm(VirtualFileKotlinClass.kt:51)
at org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache$Companion.getKotlinBinaryClassOrClassFileContent$lambda$0(KotlinBinaryClassCache.kt:89)
at org.jetbrains.kotlin.com.intellij.mock.MockApplication.runReadAction(MockApplication.java:190)
at org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache$Companion.getKotlinBinaryClassOrClassFileContent(KotlinBinaryClassCache.kt:88)
at org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache$Companion.getKotlinBinaryClassOrClassFileContent$default(KotlinBinaryClassCache.kt:72)
at org.jetbrains.kotlin.load.kotlin.VirtualFileFinder.findKotlinClassOrContent(VirtualFileFinder.kt:37)
at org.jetbrains.kotlin.fir.java.deserialization.JvmClassFileBasedSymbolProvider.extractClassMetadata(JvmClassFileBasedSymbolProvider.kt:167)
at org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider.findAndDeserializeClass(AbstractFirDeserializedSymbolProvider.kt:229)
at org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider.classCache$lambda$5(AbstractFirDeserializedSymbolProvider.kt:163)
at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCacheWithPostCompute.getValue(FirThreadUnsafeCachesFactory.kt:75)
at org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider.getClass(AbstractFirDeserializedSymbolProvider.kt:315)
at org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider.getClass$default(AbstractFirDeserializedSymbolProvider.kt:298)
at org.jetbrains.kotlin.fir.deserialization.AbstractFirDeserializedSymbolProvider.getClassLikeSymbolByClassId(AbstractFirDeserializedSymbolProvider.kt:372)
at org.jetbrains.kotlin.fir.resolve.providers.impl.FirCachingCompositeSymbolProvider.computeClass(FirCachingCompositeSymbolProvider.kt:147)
at org.jetbrains.kotlin.fir.resolve.providers.impl.FirCachingCompositeSymbolProvider.access$computeClass(FirCachingCompositeSymbolProvider.kt:27)
at org.jetbrains.kotlin.fir.resolve.providers.impl.FirCachingCompositeSymbolProvider$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:149)
at org.jetbrains.kotlin.fir.resolve.providers.impl.FirCachingCompositeSymbolProvider$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:147)
at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:57)
at org.jetbrains.kotlin.fir.resolve.providers.impl.FirCachingCompositeSymbolProvider.getClassLikeSymbolByClassId(FirCachingCompositeSymbolProvider.kt:174)
at org.jetbrains.kotlin.fir.resolve.ToSymbolUtilsKt.toSymbol(ToSymbolUtils.kt:57)
at org.jetbrains.kotlin.fir.resolve.ToSymbolUtilsKt.toTypeAliasSymbol(ToSymbolUtils.kt:77)
at org.jetbrains.kotlin.fir.resolve.TypeExpansionUtilsKt.directExpansionType(TypeExpansionUtils.kt:124)
at org.jetbrains.kotlin.fir.resolve.TypeExpansionUtilsKt.fullyExpandedTypeNoCache(TypeExpansionUtils.kt:111)
at org.jetbrains.kotlin.fir.resolve.TypeExpansionUtilsKt.fullyExpandedType(TypeExpansionUtils.kt:45)
at org.jetbrains.kotlin.fir.resolve.TypeExpansionUtilsKt.fullyExpandedType$default(TypeExpansionUtils.kt:35)
at org.jetbrains.kotlin.fir.resolve.calls.ConstructorProcessingKt.processConstructors(ConstructorProcessing.kt:138)
at org.jetbrains.kotlin.fir.resolve.calls.ConstructorProcessingKt.processConstructorsByName(ConstructorProcessing.kt:57)
at org.jetbrains.kotlin.fir.resolve.calls.ConstructorProcessingKt.processFunctionsAndConstructorsByName(ConstructorProcessing.kt:79)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeBasedTowerLevel.processFunctionsByName(TowerLevels.kt:474)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerLevelHandler.handleLevel(TowerLevelHandler.kt:61)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.processLevel(FirTowerResolveTask.kt:206)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.access$processLevel(FirTowerResolveTask.kt:63)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask$processLevel$3.invokeSuspend(FirTowerResolveTask.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.resumeTask(TowerResolveManager.kt:77)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.runTasks(TowerResolveManager.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver(FirTowerResolver.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver$default(FirTowerResolver.kt:42)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver(FirTowerResolver.kt:39)
at org.jetbrains.kotlin.fir.resolve.calls.FirCallResolver.collectCandidates(FirCallResolver.kt:209)
at org.jetbrains.kotlin.fir.resolve.calls.FirCallResolver.collectCandidates$default(FirCallResolver.kt:174)
at org.jetbrains.kotlin.fir.resolve.calls.FirCallResolver.resolveCallAndSelectCandidate(FirCallResolver.kt:80)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCallInternal$resolve(FirExpressionsResolveTransformer.kt:524)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:453)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformFunctionCall(FirAbstractBodyResolveTransformerDispatcher.kt:174)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformFunctionCall(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:45)
at org.jetbrains.kotlin.fir.expressions.impl.FirThrowExpressionImpl.transformException(FirThrowExpressionImpl.kt:53)
at org.jetbrains.kotlin.fir.expressions.impl.FirThrowExpressionImpl.transformException(FirThrowExpressionImpl.kt:28)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirControlFlowStatementsResolveTransformer.transformThrowExpression(FirControlFlowStatementsResolveTransformer.kt:218)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformThrowExpression(FirAbstractBodyResolveTransformerDispatcher.kt:721)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformThrowExpression(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.expressions.FirThrowExpression.transform(FirThrowExpression.kt:32)
at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:198)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:685)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:676)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformBlock(FirAbstractBodyResolveTransformerDispatcher.kt:201)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformBlock(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:32)
at org.jetbrains.kotlin.fir.expressions.impl.FirRegularWhenBranch.transformResult(FirRegularWhenBranch.kt:46)
at org.jetbrains.kotlin.fir.expressions.impl.FirRegularWhenBranch.transformResult(FirRegularWhenBranch.kt:20)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirControlFlowStatementsResolveTransformer.transformWhenBranch(FirControlFlowStatementsResolveTransformer.kt:138)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformWhenBranch(FirAbstractBodyResolveTransformerDispatcher.kt:667)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformWhenBranch(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.expressions.FirWhenBranch.transform(FirWhenBranch.kt:31)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:20)
at org.jetbrains.kotlin.fir.expressions.impl.FirWhenExpressionImpl.transformBranches(FirWhenExpressionImpl.kt:79)
at org.jetbrains.kotlin.fir.expressions.impl.FirWhenExpressionImpl.transformBranches(FirWhenExpressionImpl.kt:24)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirControlFlowStatementsResolveTransformer.transformWhenExpression$lambda$10(FirControlFlowStatementsResolveTransformer.kt:78)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withWhenExpression(BodyResolveContext.kt:1028)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirControlFlowStatementsResolveTransformer.transformWhenExpression(FirControlFlowStatementsResolveTransformer.kt:67)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformWhenExpression(FirAbstractBodyResolveTransformerDispatcher.kt:658)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformWhenExpression(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.expressions.FirWhenExpression.transform(FirWhenExpression.kt:39)
at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:198)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:685)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:676)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformBlock(FirAbstractBodyResolveTransformerDispatcher.kt:201)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformBlock(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:32)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirPartialBodyResolveTransformer.transformElement(FirPartialBodyResolveTransformer.kt:36)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirPartialBodyResolveTransformer.transformElement(FirPartialBodyResolveTransformer.kt:13)
at org.jetbrains.kotlin.fir.visitors.FirTransformer.transformBlock(FirTransformer.kt:183)
at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:32)
at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformBody(FirSimpleFunctionImpl.kt:114)
at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformBody(FirSimpleFunctionImpl.kt:32)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:1004)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:950)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:63)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformSimpleFunction$lambda$63$lambda$62$lambda$61(FirDeclarationsResolveTransformer.kt:942)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.forFunctionBody(BodyResolveContext.kt:1320)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformSimpleFunction(FirDeclarationsResolveTransformer.kt:940)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformSimpleFunction(FirAbstractBodyResolveTransformerDispatcher.kt:549)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformSimpleFunction(FirAbstractBodyResolveTransformerDispatcher.kt:24)
at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.transform(FirSimpleFunction.kt:55)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:20)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformDeclarations(FirFileImpl.kt:80)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:65)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:29)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformElement(FirAbstractBodyResolveTransformerDispatcher.kt:89)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBodyResolveTransformerDispatcher.transformDeclarationContent(FirAbstractBodyResolveTransformerDispatcher.kt:441)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:83)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.doTransformFile$lambda$53(FirDeclarationsResolveTransformer.kt:841)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.withFile(FirDeclarationsResolveTransformer.kt:854)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.doTransformFile(FirDeclarationsResolveTransformer.kt:840)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFile(FirDeclarationsResolveTransformer.kt:747)
... 49 more
Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: /tmp/android-sdk/platforms/android-36/android.jar (No such file or directory)
at org.jetbrains.kotlin.com.intellij.util.io.FileAccessorCache.createHandle(FileAccessorCache.java:56)
at org.jetbrains.kotlin.com.intellij.util.io.FileAccessorCache.get(FileAccessorCache.java:39)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarHandler.contentsToByteArray(FastJarHandler.kt:112)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarVirtualFile.contentsToByteArray(FastJarVirtualFile.kt:89)
at org.jetbrains.kotlin.com.intellij.openapi.vfs.VirtualFile.contentsToByteArray(VirtualFile.java:627)
at org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass$Factory.create$lambda$3(VirtualFileKotlinClass.kt:55)
... 156 more
Caused by: java.io.FileNotFoundException: /tmp/android-sdk/platforms/android-36/android.jar (No such file or directory)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:344)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:213)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystem$cachedOpenFileHandles$1.createAccessor(FastJarFileSystem.kt:31)
at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystem$cachedOpenFileHandles$1.createAccessor(FastJarFileSystem.kt:28)
at org.jetbrains.kotlin.com.intellij.util.io.FileAccessorCache.createHandle(FileAccessorCache.java:45)
... 161 more

41
package-lock.json generated
View File

@@ -2926,7 +2926,7 @@
"version": "19.1.17",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz",
"integrity": "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==",
"devOptional": true,
"dev": true,
"license": "MIT",
"dependencies": {
"csstype": "^3.0.2"
@@ -4000,7 +4000,7 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"devOptional": true,
"dev": true,
"license": "MIT"
},
"node_modules/debug": {
@@ -4475,21 +4475,6 @@
"expo": "*"
}
},
"node_modules/expo-font": {
"version": "55.0.7",
"resolved": "https://registry.npmjs.org/expo-font/-/expo-font-55.0.7.tgz",
"integrity": "sha512-oH39Xb+3i6Y69b7YRP+P+5WLx7621t+ep/RAgLwJJYpTjs7CnSohUG+873rEtqsTAuQGi63ms7x9ZeHj1E9LYw==",
"license": "MIT",
"peer": true,
"dependencies": {
"fontfaceobserver": "^2.1.0"
},
"peerDependencies": {
"expo": "*",
"react": "*",
"react-native": "*"
}
},
"node_modules/expo-image-loader": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-6.0.0.tgz",
@@ -7834,19 +7819,6 @@
"ws": "^7"
}
},
"node_modules/react-dom": {
"version": "19.2.6",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.6.tgz",
"integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==",
"license": "MIT",
"peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
"react": "^19.2.6"
}
},
"node_modules/react-fast-compare": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
@@ -8543,13 +8515,6 @@
"node": ">=11.0.0"
}
},
"node_modules/scheduler": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"license": "MIT",
"peer": true
},
"node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
@@ -9282,7 +9247,7 @@
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"devOptional": true,
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",