2017-10-26 4 views
1

안드로이드로 업데이트 한 후 java.lang.NullPointerException이 경고를 생성 할 수있다 "진동"나는이 경고를 내가 진동()를 사용하려고 할 때마다 점점 해요 :메소드 호출 안드로이드 스튜디오 3.0으로 업데이트 한 후 스튜디오 3

을 내가 권한을 포함 시켰습니다

package com.gavinsappcreations.vibratortest; 

import android.content.Context; 
import android.os.Vibrator; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
     vibrator.vibrate(100); 

    } 
} 

:

메소드 호출 '진동' 'java.lang.NullPointerException이'여기

을 생성 할 수 내 코드입니다

<uses-permission android:name="android.permission.VIBRATE"/> 

또한 코드는 내 장치에서 작동합니다.

+0

세부 코드 및 오류 logcat 정보를 표시하십시오. – KeLiuyue

답변

2

경고를 그냥 지울 수 있습니다.

if(vibrator != null) { 
    vibrator.vibrate(100); 
} 

Nikolas의 의견을 확인하십시오.

+0

감사! 나는 이전의 Android Studio 버전에서이 경고가 나타나지 않았기 때문에 혼란 스러웠습니다. –

+1

Null 검사를 통해 경고가 수정되지만 "VIBRATOR_SERVICE가 없다"는 가정은 잘못된 것입니다. IDE는 정적 코드 분석을 수행하기 때문에 이전 IDE에서보다 제한적입니다. – Nikolas

+0

사실, 당신 말이 맞아요. 이 객체의 문서를 읽은 다음 hasVibrator() 메서드가 있는데이 객체는 null이 아니라는 의미입니다. –