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

[regression] Expo Go 2.30.8 (SDK50) Android Crash When Running SDK49 project #26561

Closed
rogalski opened this issue Jan 21, 2024 · 7 comments
Closed
Assignees
Labels
Android Expo Go The client distributed on app stores Issue accepted

Comments

@rogalski
Copy link

Minimal reproducible example

WIP

Summary

Expo Go: 2.30.8, Android
Prev version: unknown, but before SDK50 release.

The crash happens when react-native-image-viewing fullscreen view is open - I am working on MCVE. Nevertheless, since it's clear regression (as I am opening project update pushed to Expo before App Store update of Expo Go) IMHO it's still beneficial to report it as it is.

From sources - Animated.Image is used under the hood: https://github.com/jobtoday/react-native-image-viewing/blob/master/src/components/ImageItem/ImageItem.android.tsx

FATAL EXCEPTION: FrescoDecodeExecutor-6
Process: host.exp.exponent, PID: 22883
java.lang.IncompatibleClassChangeError: Found interface com.facebook.imagepipeline.image.CloseableImage, but class was expected (declaration of 'com.facebook.imagepipeline.image.CloseableImage' appears in base.apk!classes2.dex)
	at abi49_0_0.com.facebook.react.modules.image.ImageLoaderModule$2.onNewResultImpl(SourceFile:30)
	at com.facebook.datasource.BaseDataSubscriber.onNewResult(SourceFile:5)
	at com.facebook.datasource.AbstractDataSource$1.run(SourceFile:29)
	at com.facebook.common.executors.CallerThreadExecutor.execute(SourceFile:1)
	at com.facebook.datasource.AbstractDataSource.notifyDataSubscriber(SourceFile:18)
	at com.facebook.datasource.AbstractDataSource.notifyDataSubscribers(SourceFile:35)
	at com.facebook.datasource.AbstractDataSource.setResult(SourceFile:3)
	at com.facebook.imagepipeline.datasource.AbstractProducerToDataSourceAdapter.onNewResultImpl(SourceFile:14)
	at com.facebook.imagepipeline.datasource.CloseableProducerToDataSourceAdapter.onNewResultImpl(SourceFile:2)
	at com.facebook.imagepipeline.datasource.CloseableProducerToDataSourceAdapter.onNewResultImpl(SourceFile:1)
	at com.facebook.imagepipeline.datasource.AbstractProducerToDataSourceAdapter$createConsumer$1.onNewResultImpl(SourceFile:7)
	at com.facebook.imagepipeline.producers.BaseConsumer.onNewResult(SourceFile:14)
	at com.facebook.imagepipeline.producers.MultiplexProducer$Multiplexer.onNextResult(SourceFile:134)
	at com.facebook.imagepipeline.producers.MultiplexProducer$Multiplexer$ForwardingConsumer.onNewResultImpl(SourceFile:4)
	at com.facebook.imagepipeline.producers.MultiplexProducer$Multiplexer$ForwardingConsumer.onNewResultImpl(SourceFile:1)
	at com.facebook.imagepipeline.producers.BaseConsumer.onNewResult(SourceFile:14)
	at com.facebook.imagepipeline.producers.BitmapMemoryCacheProducer$1.onNewResultImpl(SourceFile:25)
	at com.facebook.imagepipeline.producers.BitmapMemoryCacheProducer$1.onNewResultImpl(SourceFile:1)
	at com.facebook.imagepipeline.producers.BaseConsumer.onNewResult(SourceFile:14)
	at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.handleResult(SourceFile:22)
	at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(SourceFile:248)
	at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder._init_$lambda$2(SourceFile:120)
	at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.a(SourceFile:1)
	at com.facebook.imagepipeline.producers.a.run(SourceFile:1)
	at com.facebook.imagepipeline.producers.JobScheduler.doJob(SourceFile:31)
	at com.facebook.imagepipeline.producers.JobScheduler.access$000(SourceFile:1)
	at com.facebook.imagepipeline.producers.JobScheduler$1.run(SourceFile:3)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at com.facebook.imagepipeline.core.PriorityThreadFactory.newThread$lambda$0(SourceFile:16)
	at com.facebook.imagepipeline.core.PriorityThreadFactory.a(SourceFile:1)
	at com.facebook.imagepipeline.core.a.run(SourceFile:1)
	at java.lang.Thread.run(Thread.java:1012)

Environment

expo-env-info 1.2.0 environment info:
System:
OS: Windows 11 10.0.22631
Binaries:
Node: 18.18.0 - C:\Program Files\nodejs\node.EXE
npm: 9.8.1 - C:\Program Files\nodejs\npm.CMD
npmPackages:
@expo/metro-config: ^0.10.7 => 0.10.7
expo: ^49.0.7 => 49.0.18
react: 18.2.0 => 18.2.0
react-native: 0.72.6 => 0.72.6
react-native-web: ~0.19.6 => 0.19.7
Expo Workflow: bare

@rogalski rogalski added the needs validation Issue needs to be validated label Jan 21, 2024
@expo-bot expo-bot added needs review Issue is ready to be reviewed by a maintainer and removed needs validation Issue needs to be validated labels Jan 21, 2024
@rogalski
Copy link
Author

Question to the maintainers - what is the recommended approach to downgrade Expo Go?
Is there any server where old APKs can be downloaded?

This will help immensely with verifying MCVE.

@alanjhughes
Copy link
Collaborator

Hi - this library is not maintained or supported by expo. I suggest opening an issue on their repo.

@brentvatne
Copy link
Member

@rogalski - you can install an old version of expo go by staring an sdk 49 project and launching it - https://docs.expo.dev/get-started/expo-go/#how-can-i-install-an-older-version

cc @amandeepmittal - perhaps we should list old versions of expo go somewhere? maybe on https://expo.dev/tools

@wodin
Copy link
Contributor

wodin commented Jan 22, 2024

maybe on https://expo.dev/tools

Or /client?

@Kudo Kudo added Android Expo Go The client distributed on app stores Issue accepted and removed needs review Issue is ready to be reviewed by a maintainer labels Jan 23, 2024
@Kudo Kudo self-assigned this Jan 23, 2024
@expo-bot
Copy link
Collaborator

Thank you for filing this issue!
This comment acknowledges we believe this may be a bug and there’s enough information to investigate it.
However, we can’t promise any sort of timeline for resolution. We prioritize issues based on severity, breadth of impact, and alignment with our roadmap. If you’d like to help move it more quickly, you can continue to investigate it more deeply and/or you can open a pull request that fixes the cause.

Kudo added a commit that referenced this issue Jan 23, 2024
# Why

fixes #26556
fixes #26561
close ENG-11171
close ENG-11173

# How

- the #26556 appearance issue was resolved by
expo/react-native#34. i've cherry-picked the fix
to both sdk-49 and sdk-50 branch of react-native-lab fork.
- the #26561 was coming from incompatible fresco versions. since fresco
was bumped from react-native 0.73, we should re-version sdk-49 aar with
new fresco. here's what i did

# Test Plan

tested on the local versioned release build expo-go
- #26556 for both sdk-49 and sdk-50
- #26561 doesn't have a repro but i can copy a repro from
https://github.com/jobtoday/react-native-image-viewing/tree/master/example
@brentvatne
Copy link
Member

this should be resolved in the latest version of expo go

@rogalski
Copy link
Author

Thank you @brentvatne

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android Expo Go The client distributed on app stores Issue accepted
Projects
None yet
Development

No branches or pull requests

6 participants