如何解决使用“ make project”构建的Android应用程序崩溃,但使用“ Run”安装时不会崩溃 在 Run 和 Make 期间构建的输出Fragments有什么区别?
我们正在构建一个使用HighCharts
Android
包装器库*的应用。
在开发过程中,该应用程序通过 Run 命令安装在设备/仿真器上,并且一切正常。
但是,当生成构建视图进行项目,生成签名的APK 或 CI / DC管道生成的构建-应用程序总是崩溃。
当Highcharts
调用Gson
时,崩溃发生在某个地方(需要从外部提供Gradle
构建文件中的依赖关系)。 Gson
然后抛出java.lang.ArrayIndexOutOfBoundsException
异常。 (下面的stacktrace)
不是什么:
- 与Android版本无关。在API的29、25、23上进行了测试
- 与设备无关。发生在运行 clean android的物理设备和模拟器上。
- 与
Proguard
不相关(我认为)-在debug
的构建中也会发生,并且为了安全起见,还添加了激进的keep
语句。 - 相同的图表可以在我们的网站和iOS应用上正常工作。
可能相关:
Highcharts Android
与Hilt DI
尚不兼容,后者已深深嵌入到我们的代码中。显然,Highcharst
期望为其Context
构造函数提供的View
是Activity
类型的,由于插入了{{1} }改成Hilt
并用FragmentContextWrapper
注释。
description and workaround here
我想了解的东西:
在 Run 和 Make 期间构建的输出Fragments
有什么区别?
有关崩溃的完整描述以及示例代码,here
* @AndroidEntryPoint
是一个.APK
图表库。 HighCharts
库是JS
的{{1}}包装器,在自定义Android Highcharts
上运行。 Java
也是JS
个包装WebView
代码的对象和函数。
Stacktrace:
API
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。