Receiving error on android (com.facebook.react.bridge.ReadableNativeMap cannot be cast to java.lang.Strin)
- Dominant language
- JavaScript
- Stars
- 69
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
I am currently working on a new cryptocurrency / chat mobile app using matrix sdk (https://github.com/matrix-org/matrix-js-sdk), and this fails for me on android, I receive the `com.facebook.react.bridge.ReadableNativeMap cannot be cast to java.lang.String` error.
- Also I'm not too sure if this works on iOS with matrix SDK, since I don't need the polyfills on iOS, I only need the polyfills on android
#### How to reproduce
- make browser-pollyfill a dependancy, and import it into your project
- start your project, and within a few seconds - minutes, an error will appear
- Device: Moto G5
- Operating system: Android 🤦♂️
#### Current Solution
Right now I have a file called `polyfill.js` and I import it only for android within App.js - contents of this file were taken from `Node.js` file in this library, credit goes to @EvanBacon
```
import { EventEmitter } from 'fbemitter';
class Document {
constructor() {
this.emitter = new EventEmitter();
this.addEventListener = this.addEventListener.bind(this);
this.removeEventListener = this.removeEventListener.bind(this);
this._checkEmitter = this._checkEmitter.bind(this);
}
createElement(tagName) {
return {};
}
_checkEmitter() {
if (
!this.emitter ||
!(this.emitter.on || this.emitter.addEventListener || this.emitter.addListener)
) {
this.emitter = new EventEmitter();
}
}
addEventListener(eventName, listener) {
this._checkEmitter();
if (this.emitter.on) {
this.emitter.on(eventName, listener);
} else if (this.emitter.addEventListener) {
this.emitter.addEventListener(eventName, listener);
} else if (this.emitter.addListener) {
this.emitter.addListener(eventName, listener);
}
}
removeEventListener(eventName, listener) {
this._checkEmitter();
if (this.emitter.off) {
this.emitter.off(eventName, listener);
} else if (this.emitter.removeEventListener) {
this.emitter.removeEventListener(eventName, listener);
} else if (this.emitter.removeListener) {
this.emitter.removeListener(eventName, listener);
}
}
}
window.document = window.document || new Document();
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.