Mar*_*ann 5 android highcharts android-build android-highcharts dagger-hilt
我们正在构建一个使用HighCharts Android包装库*的应用程序。在开发过程中,应用程序通过运行命令安装在设备/模拟器上,一切正常。
但是,在创建构建视图Make Project、Generate Signed APK或由CI/DC Pipelines生成的构建时- 应用程序总是崩溃。
Highcharts调用时在某处发生崩溃Gson(需要在Gradle构建文件中作为依赖项在外部提供)。Gson然后抛出java.lang.ArrayIndexOutOfBoundsException异常。(下面的堆栈跟踪)
Proguard相关(我认为) - 也发生在debug构建中,并且keep为了安全起见,还添加了激进的声明。Highcharts Android尚不兼容Hilt DI,它深深嵌入我们的代码中。显然,Highcharst期望Context提供给它的View构造函数的Activity类型是类型,Hilt因为 in 将 aFragmentContextWrapper注入到Fragments带有@AndroidEntryPoint.
此处的说明和解决方法
.APK在Run和Make期间构建的输出有什么区别?可以在此处找到崩溃的完整描述以及示例代码
*HighCharts是一个JS图表库。该Android Highcharts库是一个Java用于包装JS上的习俗运行WebView。的API是还Java对象和功能包裹JS代码。
堆栈跟踪:
2020-07-30 09:39:25.679 5627-5627/com.app.android.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.android.debug, PID: 5627
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.google.gson.internal.$Gson$Types.getGenericSupertype($Gson$Types.java:240)
at com.google.gson.internal.$Gson$Types.getSupertype($Gson$Types.java:272)
at com.google.gson.internal.$Gson$Types.getCollectionElementType($Gson$Types.java:290)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:56)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
at com.google.gson.Gson.toJson(Gson.java:669)
at com.google.gson.Gson.toJson(Gson.java:648)
at com.google.gson.Gson.toJson(Gson.java:603)
at com.google.gson.Gson.toJson(Gson.java:583)
at com.highsoft.highcharts.core.i.a(SourceFile:8)
at com.highsoft.highcharts.core.f.c(SourceFile:2)
at com.highsoft.highcharts.core.HIChartView$q0.update(SourceFile:4)
at java.util.Observable.notifyObservers(Observable.java:163)
at java.util.Observable.notifyObservers(Observable.java:115)
at com.highsoft.highcharts.core.HIFoundation$a.update(SourceFile:4)
at java.util.Observable.notifyObservers(Observable.java:163)
at java.util.Observable.notifyObservers(Observable.java:115)
at com.highsoft.highcharts.common.hichartsclasses.HISeries.setData(SourceFile:3)
at com.app.android.ui.customviews.hicharts.LineGraphChart$applyDataSet$1.run(LineGraphChart.kt:256)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |