我们在Android中为特定操作系统版本(8.0)安装APK文件时遇到错误。但是,这在开发过程中工作正常。
错误如下
Error: Migration is required due to the following errors:
ReactNativeJS: - Property 'Some Field' has been added.
ReactNativeJS: - Property 'other Field' has been added.
我们在React Native项目中使用Realm DB。根据一些论坛的建议,我们删除了节点模块并重置了缓存,删除了nodemodules / realm。并完成了npm安装。
但是,在尝试安装APK时仍然显示相同的错误,但是,当我们在开发模式下运行时,这个问题没有发生。
注意:此问题仅发生在特定设备(操作系统版本8.0),其他设备正常工作。
有什么建议?
使用非SDK接口的限制
为了帮助确保应用程序的稳定性和兼容性,该平台限制了一些非SDK方法和字段的使用;无论您是尝试直接,通过反射还是使用JNI访问这些方法和字段,这些限制都适用。在Android 9中,您的应用可以继续访问这些受限制的界面;平台使用toast和log条目引起你的注意。如果您的应用显示了这样的祝酒词,那么您必须采用除受限制界面之外的实施策略。如果您认为没有替代策略可行,您可以提交错误请求重新考虑限制。
对非SDK接口的限制包含更多重要信息。您应该检查它以确保您的应用程序继续正常运行。
从Android 9(API级别28)开始,该平台限制您的应用可以使用哪些非SDK接口。只要应用程序引用非SDK接口或尝试使用反射或JNI获取其句柄,就会应用这些限制。这些限制旨在帮助改善用户和开发人员体验,降低用户崩溃的风险以及开发人员的紧急部署。有关此决定的更多信息,请参阅Improving Stability by Reducing Usage of non-SDK Interfaces.
有关更多信息,请参阅here。