为养牛场建造软件。第2部分。生产错误
#kotlin #android #mobile #tristan

介绍

  • 在本系列中,我每周都会乘您来释放我的应用程序,并向您更新上一周所面临的所有挑战。
  • 我构建的应用程序是一个应用程序,它允许养牛者在产犊季节跟踪犊牛

我在Google Play商店上的应用程序

HERE

GitHub代码

目录

  1. Production errors
  2. Fixing the errors
  3. New features
  4. This weeks goals

生产错误

  • 我发布了我的应用程序后立即开放时会崩溃,这确实很奇怪,因为它在我自己的测试设备上完美工作。
  • 要快速解决这个问题,我知道我需要某种伐木,那就是我发现TimberFirebase Crashlynics的时候。然后,我使用THIS视频将它们都设置起来并创建一个不错的崩溃报告系统。

  • 遇到THIS stackoverflow问题后,我意识到崩溃是由Proguard引起的混淆错误引起的。默认情况下,Proguard以生产模式运行,但不在调试模式下运行(我的应用程序仅在测试设备上工作的原因)。

  • 如果您不熟悉obfuscation,它会缩短类和成员的名称,从而减少DEX文件大小。这很好,但是在使用Firebase数据库模型时,这是一个问题。混淆之前,我的代码看起来像这样:

data class FireBaseCalf(var calftag: String? = null,
                        var cowtag:String? = null,
                        var ccianumber: String? = null,
                        var sex:String? = null,
                        var details:String?=null,
                        var date: Date? = null,
                        var birthweight:String? = null,
                        var id: String? = null,

                        )

  • 但是,在混淆之后,我的代码看起来像这样:
data class FireBaseCalf(var a: String? = null,
                        var b? = null,
                        var c: String? = null,
                        var d? = null,
                        var e?=null,
                        var f: Date? = null,
                        var g? = null,
                        var h: String? = null,

                        )

  • 当我的应用程序获取数据
  • 时,这会导致崩溃

如何解决混淆错误?

  • 事实证明,如果我们阅读文档HERE,Firebase指出,如果使用toObject()方法,将会发生这种错误。 THIS是我解决问题的方式

新功能

  • 我的一些用户(我的父亲)要求能够选择小牛的出生日期。为了实现此功能,我使用了THIS YouTube视频和THIS文档的组合,该文档创建了一个非常漂亮的日期选择器:

Android date picker

本周目标

  • 期待本周我有两个我想实现的主要目标:

1)代码重构
2)开源贡献

  • 我将继续努力并创建下周的所有人更新

结论

  • 感谢您抽出宝贵的时间阅读我的博客文章。如果您有任何疑问或疑虑,请在下面发表评论或在Twitter上与我联系。