为什么振动器突然停止工作,我该如何解决它?



我一直在使用Kotlin制作Android应用程序,这是几年前我和几个朋友创建的一个简单游戏的副本。bat。我在它里面有一个振动功能,只是作为一个小的额外功能,但突然之间,没有重启或更新Android Studio,也没有更改任何代码,它就停止工作了,说它需要我已经添加的权限。我可以点击快速修复按钮几次,我将有几个相同的权限在Android Manifest,但它仍然不能工作,有1,2个副本,或没有。它开始时,我创建了一个新的活动,但我还没有在它添加任何东西,我删除了它,看看是否会修复它,但它没有。我试着清理项目并重新启动Android Studio,但没有任何效果。我不知道怎样才能让振动棒恢复工作。我对其他几个项目的振动有完全相同的代码,它们都工作得很好。我的振动代码是这样的:

private fun vibrate(time: Long) {
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
if (vibrator.hasVibrator()) { // Vibrator availability checking
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vibrator.vibrate(VibrationEffect.createOneShot(time, VibrationEffect.DEFAULT_AMPLITUDE)) // New vibrate method for API Level 26 or higher
} else {
vibrator.vibrate(time) // Vibrate method for below API Level 26
}
}
}
更新:经过一些愤怒和测试,我已经修复了这个奇怪的问题,在很大程度上。只有当我使用"@SuppressLint("MissingPermission")"来抑制错误时,错误才会消失。然后允许应用程序构建和运行。应用程序确实像以前一样正确地振动,尽管如果我删除suppressLint,我称之为幽灵错误仍然会回来。每隔一段时间,即使是suppressLint也无法抑制它,我不得不删除并重新输入该行来再次修复它。我还是不知道是什么引起的。自从Android Studio Chipmunk问世以来,它的故障就越来越多。如果我能得到任何可能导致这种情况或如何停止的信息,我将不胜感激。

更新2:我相信它与如何使一个新的活动导入AppCompatActivity" import android.support.v7.app.AppCompatActivity"而不是通常的"import androidx. apppat .app. appcompatactivity "在重新添加了我想要的活动并使其工作之后,由于其他原因,我无法将其构建,主要是"v7";在进口中。当我从"androidx.support.v7.app…";androidx.appcompat.app……"它现在工作得很好,即使没有我之前添加的SuppressLint。我相信这就是我的问题的原因,但我需要有人来确认一下。

更新3:我相信完整的修复是迁移到AndroidX。我不知道为什么我必须这样做,因为我1天前创建了这个项目,但它修复了反复出现的错误和构建失败。只需要在屏幕顶部进行重构,然后点击"迁移到AndroidX…">

这只是我第三次更新的复制粘贴,但如果其他人有同样的问题,这应该可以解决问题。我相信完整的解决方案是迁移到AndroidX。我不知道为什么我必须这样做,因为我1天前创建了这个项目,但它修复了反复出现的错误和构建失败。只要去"Refactor",然后点击"Migrate to AndroidX…">

最新更新