Closed johanquiroga closed 4 years ago
Hi @johanquiroga 👋 I guess this is mostly not a framework issue, just because Hermes engine does not currently support Proxies. See the related thread
And yes, this is because Icons module relies on Proxies, but this was the simplest solution for us. Btw, MobX users have the same issues with Hermes.
I think we should use module proxy-polyfill
for this line:
https://github.com/akveo/react-native-ui-kitten/blob/05a3471c49916e8bdf8f7caaf3070b409582025e/src/eva-icons/createIconsMap.ts#L7
ie:
import PolyfillProxy from 'proxy-polyfill/src/proxy'
...
return new PolyfillProxy({}, {...})
@anhtuank7c does it resolves an issue?
@anhtuank7c I did some review on this now, and what I get is that we don't get application crashes, but for any reason it's unable to find requested property, e.g:
const HeartIcon = () => <Icon name='heart' />
will lead to runtime error of @ui-kitten/eva-icons
package saying 'heart' does not exist
Hi all In my case, this issue is present only on android and my currently workaround is :
import { Icon } from '@ui-kitten/components';
and use:
import React from 'react';
import { Image } from 'react-native';
import { Button } from '@ui-kitten/components';
const RemoteBulbIcon = (style) => ( <Image style={style} source={{ uri: 'https://akveo.github.io/eva-icons/outline/png/128/bulb-outline.png' }} /> );
export const IconExternalSourceShowcase = (props) => (
);
icons from: (https://akveo.github.io/eva-icons/#/)
Other information:
OS, device, package version:
"@eva-design/eva": "^1.3.1",
"@ui-kitten/eva-icons": "^4.3.2",
"react-native-ui-kitten": "4.3.2",
@AndreaTurco the reason is that Hermes engine doesn't support proxies. This engine is used to increase Android performance, and it doesn't affect iOS in total. Currently we have no workaround to get rid of proxies, so if you really need Hermes - your solution would work, but will affect UX because of loading icons remotely instead of using SVGs.
Good news ever!!!!
@anhtuank7c thanks for sharing 👍
@anhtuank7c Please any workaround? am using react-native 0.62 but I still have this error...
@lewatt23 Did you try npm install hermes-engine@v0.4.2-rc1
?
@anhtuank7c My bad thought I was installed by default since I was using rn 0.62.2, just installed and is working fine, thanks :)
for those using 0.63 use npm install hermes-engine@v0.5.2-rc1
for those using 0.63 use npm install hermes-engine@v0.5.2-rc1
It worked after clean gradle builds Thanks!!
0.64 will have Proxy enabled by default on Hermes. Woohoo!
for those using 0.63 use npm install hermes-engine@v0.5.2-rc1
Workssss
Issue type
Issue description
Current behavior:
The app crashes when using new Hermes engine.
This only happened once I added the Icons Module, before that the app was working correctly with the Hermes engine.
Expected behavior:
The app works with or without the Hermes engine.
Steps to reproduce:
Other information:
OS, device, package version