Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.RuntimeException-由以下原因引起:java.lang.ArrithmeticException_Java_Android_Kotlin_Notifications_Arithmeticexception - Fatal编程技术网

java.lang.RuntimeException-由以下原因引起:java.lang.ArrithmeticException

java.lang.RuntimeException-由以下原因引起:java.lang.ArrithmeticException,java,android,kotlin,notifications,arithmeticexception,Java,Android,Kotlin,Notifications,Arithmeticexception,这里有两个游戏机日志,我认为它们是同一个问题。 我在play store上的应用程序中使用了这个库。但我不知道如何解决正在发生的崩溃。 请有人帮帮我,同时在下面发布shallNotify的代码…请帮帮 java.lang.RuntimeException: 位于android.app.ActivityThread.handleReceiver(ActivityThread.java:4114) 在android.app.ActivityThread.access$1500(ActivityThr

这里有两个游戏机日志,我认为它们是同一个问题。
我在play store上的应用程序中使用了这个库。
但我不知道如何解决正在发生的崩溃。
请有人帮帮我,同时在下面发布shallNotify的代码…请帮帮

java.lang.RuntimeException:
位于android.app.ActivityThread.handleReceiver(ActivityThread.java:4114)
在android.app.ActivityThread.access$1500(ActivityThread.java:250)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1984)
在android.os.Handler.dispatchMessage(Handler.java:106)
在android.os.Looper.loop(Looper.java:250)
位于android.app.ActivityThread.main(ActivityThread.java:7766)
在java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
原因:java.lang.arithmetricException:
在myapp.w3.b.f(未知来源:47)
在myapp.w3.b.e(未知来源)
在myapp.recievers.NotifierReceiver.onReceive(未知来源:91)
在android.app.ActivityThread.HandlerReceiver(ActivityThread.java:4105)

java.lang.RuntimeException:
位于android.app.ActivityThread.handleReceiver(ActivityThread.java:3798)
在android.app.ActivityThread.access$1400(ActivityThread.java:220)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1871)
位于android.os.Handler.dispatchMessage(Handler.java:107)
在android.os.Looper.loop(Looper.java:214)
位于android.app.ActivityThread.main(ActivityThread.java:7403)
在java.lang.reflect.Method.invoke(Method.java)
在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
原因:java.lang.arithmetricException:
在myapp.helpers.NotificationHelper.shallNotify(NotificationHelper.java:47)
在myapp.helpers.NotificationHelper.notify(NotificationHelper.java)
在myapp.recievers.NotifierReceiver.onReceive(NotifierReceiver.java:91)
位于android.app.ActivityThread.handleReceiver(ActivityThread.java:3789)
在android.app.ActivityThread.access$1400(ActivityThread.java:220)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1871)
位于android.os.Handler.dispatchMessage(Handler.java:107)
在android.os.Looper.loop(Looper.java:214)
位于android.app.ActivityThread.main(ActivityThread.java:7403)
在java.lang.reflect.Method.invoke(Method.java)
在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)


这里可能是被零除。SharedReferences的默认值是0,所以这里崩溃的一个明显方法是在prefs中没有
总摄入量的值,或者没有零值。

@laalto:没有,而且我在android studio中为总摄入量设置了0值,错误是算术异常除以零,但这里只出现算术异常…就是这样。Google Play开发者控制台过滤掉了异常消息部分。@laalto:先生,但我再次检查了它,它不是零,我从中得到了完美的百分比值,不明白原因是什么@laalto:好,所以我再次测试了它,给出了零值,但是错误显示了不同的行号。。。。它在helpers.NotificationHelper.shallNotify(NotificationHelper.kt:95)、helpers.NotificationHelper.notify(NotificationHelper.kt:131)、receiver.NotifierReceiver.onReceive(NotifierReceiver.kt:35)中表示错误,但根据第47行和第91行中的播放控制台错误,它们是:val audioAttributes=audioAttributes.Builder()和private fun shallNotify():Boolean{….我很困惑,先生,请帮助如果您在商店发布后修改了代码,当然行号会有所不同
        private fun shallNotify(): Boolean {
        val prefs = ctx.getSharedPreferences(AppUtils.USERS_SHARED_PREF, AppUtils.PRIVATE_MODE)
        val sqliteHelper = SqliteHelper(ctx)

        val percent = sqliteHelper.getIntook(AppUtils.getCurrentDate()!!) * 100 /      prefs.getInt(AppUtils.TOTAL_INTAKE, 0)

        var doNotDisturbOff = true

        val startTimestamp = prefs.getLong(AppUtils.WAKEUP_TIME, 0)
        val stopTimestamp = prefs.getLong(AppUtils.SLEEPING_TIME_KEY, 0)

        if (startTimestamp > 0 && stopTimestamp > 0) {
            val now = Calendar.getInstance().time

            val start = Date(startTimestamp)
            val stop = Date(stopTimestamp)

            doNotDisturbOff = compareTimes(now, start) >= 0 && compareTimes(now, stop) <= 0
        }

        return doNotDisturbOff && (percent < 100)
    }
        fun notify(id: Long, notification: NotificationCompat.Builder?) {
        if (shallNotify()) {
            getManager()!!.notify(id.toInt(), notification!!.build())
        } else {
            Log.i("AquaDroid", "dnd period")
        }
    }
        override fun onReceive(context: Context, intent: Intent) {

        val prefs = context.getSharedPreferences(AppUtils.USERS_SHARED_PREF, AppUtils.PRIVATE_MODE)
        val notificationsTone = prefs.getString(
            AppUtils.NOTIFICATION_TONE_URI_KEY, RingtoneManager.getDefaultUri(
                RingtoneManager.TYPE_NOTIFICATION
            ).toString()
        )

        val title = context.resources.getString(R.string.app_name)
        val messageToShow = prefs.getString(
            AppUtils.NOTIFICATION_MSG_KEY,
            context.resources.getString(R.string.pref_notification_message_value)
        )

        /* Notify */
        val nHelper = NotificationHelper(context)
        @SuppressLint("ResourceType") val nBuilder = messageToShow?.let {
            nHelper
                .getNotification(title, it, notificationsTone)
        }
        nHelper.notify(1, nBuilder)

    }
val percent = sqliteHelper.getIntook(AppUtils.getCurrentDate()!!) * 100 /      prefs.getInt(AppUtils.TOTAL_INTAKE, 0)