getSystemService NullPointerException

getSystemService NullPointerException

    package com.example.myapplication

import android.app.Activity
import android.content.Context
import android.os.*
import android.util.Log
import android.view.DragEvent
import android.view.MotionEvent
import android.view.ScaleGestureDetector
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.widget.ConstraintSet
import androidx.wear.widget.SwipeDismissFrameLayout

class MetroMapActivity : Activity()
{
    private lateinit var image:ImageView
    private var gesture:ScaleGestureDetector? = null
    private var scaleFactor = 1.0f
    private lateinit var swipeview:SwipeDismissFrameLayout
    private lateinit var toast: Toast
    private lateinit var buttonone:Button
    private lateinit var vibratorManager: VibratorManager
    private lateinit var vibrator: Vibrator
    @RequiresApi(Build.VERSION_CODES.S)
    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_metro_map)
        swipeview = findViewById(R.id.swipe)
        toast = Toast.makeText(this,"a",Toast.LENGTH_SHORT)
        image = findViewById(R.id.metromap)
        buttonone = findViewById<Button>(R.id.button)
        gesture = ScaleGestureDetector(this, ScaleListener())
        swipeview.setOnTouchListener(swipetouch())
        buttonone.setOnTouchListener(buttontouch())
        vibratorManager = this.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
        //vibrator = vibratorManager.defaultVibrator
        //vibrator.vibrate(VibrationEffect.createOneShot(100, 30))
        //image.setOnTouchListener(imagetouch())
    }

我正在制作 wearOS 应用程序。
当我调用 getSystemService() 时,我得到 NullPointerException。似乎 getSystemService() 保持 returns 为空,但我不知道为什么。
我还在 AndroidManifest.xml.
中写了 我什至无法得到线索。请帮助...请... 我曾经在 OnResume() 中写过 getSystemService() 因为有人告诉我它 有些东西还没有初始化(?)但它也没有工作。
这是堆栈跟踪:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 27345
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: java.lang.NullPointerException: null cannot be cast to non-null type android.os.VibratorManager
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3456)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3612)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2073)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:7690)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)
     Caused by: java.lang.NullPointerException: null cannot be cast to non-null type android.os.VibratorManager
        at com.example.myapplication.MainActivity.onCreate(MainActivity.kt:31)
        at android.app.Activity.performCreate(Activity.java:8009)
        at android.app.Activity.performCreate(Activity.java:7993)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3429)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3612) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2073) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:246) 
        at android.app.ActivityThread.main(ActivityThread.java:7690) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995) 
I/Process: Sending signal. PID: 27345 SIG: 9

VIBRATOR_MANAGER_SERVICE 已添加到 API 级别 31 (Android 12),而较低 API 级别的设备 运行 对此一无所知。

在较旧的 API 级别上,您可以使用 VIBRATOR_SERVICE 来检索 Vibrator(而不是 VibratorManager)。