React-native 在 64 位设备上 - 调试工作正常但不是发布。 32位设备完全没有问题
React-native on 64-bit devices - debug works fine but not release. No problem with 32-bit devices at all
我用谷歌搜索了很多,但 none 的发现与我的情况相同:
- 只有 64 位 Android 设备受影响(试过几个 - 都一样)
- 在通过 USB 连接的相同设备上调试构建没有问题
- 发布签名构建在每个 64 位设备上挂起(尝试了两个 64/32 版本)
- 32 位和通用签名版本在 32 位设备上非常有效
同一个代码在调试和发布时怎么可能不同,为什么?使用了不同的 JS 核心?
[更新]
catlog 显示 pouchdb 复制问题:
{ [Error]
10-19 08:55:39.157 22836 22855 I ReactNativeJS: line: 132,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: column: 7285,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: sourceURL: 'index.android.bundle',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: result:
10-19 08:55:39.157 22836 22855 I ReactNativeJS: { ok: false,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: start_time: '2019-10-19T05:55:38.997Z',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: docs_read: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: docs_written: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: doc_write_failures: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: errors: [],
10-19 08:55:39.157 22836 22855 I ReactNativeJS: status: 'aborting',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: end_time: '2019-10-19T05:55:39.155Z',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: last_seq: 0 } }
在同一台设备上进行调试时效果很好。
怎么样?
可以附上 logcat 的日志吗?这将为正在发生的事情提供线索。
在您的设备上安装发布版本。
adb logcat -c // Clear all previous logs
adb logcat > log.txt // Dump logs to a separate file
获得日志后,请查看您的包裹是否有任何异常。如果是这样,请在这里分享它,我们可以看看出了什么问题。没有日志,很难推测。
原因是在调试构建中默认允许非 https 请求,在生产中你必须指定异常否则代码会静静地死掉,非常不清楚Android 方法。在 iOS 顺便说一句,也有类似的问题。所以与 Couch/Pouch 数据库无关,只是 OS 特定的网络混乱
我用谷歌搜索了很多,但 none 的发现与我的情况相同:
- 只有 64 位 Android 设备受影响(试过几个 - 都一样)
- 在通过 USB 连接的相同设备上调试构建没有问题
- 发布签名构建在每个 64 位设备上挂起(尝试了两个 64/32 版本)
- 32 位和通用签名版本在 32 位设备上非常有效
同一个代码在调试和发布时怎么可能不同,为什么?使用了不同的 JS 核心?
[更新] catlog 显示 pouchdb 复制问题:
{ [Error]
10-19 08:55:39.157 22836 22855 I ReactNativeJS: line: 132,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: column: 7285,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: sourceURL: 'index.android.bundle',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: result:
10-19 08:55:39.157 22836 22855 I ReactNativeJS: { ok: false,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: start_time: '2019-10-19T05:55:38.997Z',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: docs_read: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: docs_written: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: doc_write_failures: 0,
10-19 08:55:39.157 22836 22855 I ReactNativeJS: errors: [],
10-19 08:55:39.157 22836 22855 I ReactNativeJS: status: 'aborting',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: end_time: '2019-10-19T05:55:39.155Z',
10-19 08:55:39.157 22836 22855 I ReactNativeJS: last_seq: 0 } }
在同一台设备上进行调试时效果很好。 怎么样?
可以附上 logcat 的日志吗?这将为正在发生的事情提供线索。
在您的设备上安装发布版本。
adb logcat -c // Clear all previous logs
adb logcat > log.txt // Dump logs to a separate file
获得日志后,请查看您的包裹是否有任何异常。如果是这样,请在这里分享它,我们可以看看出了什么问题。没有日志,很难推测。
原因是在调试构建中默认允许非 https 请求,在生产中你必须指定异常否则代码会静静地死掉,非常不清楚Android 方法。在 iOS 顺便说一句,也有类似的问题。所以与 Couch/Pouch 数据库无关,只是 OS 特定的网络混乱