안드로이드 해시키

조회수 788회
@RequiresApi(Build.VERSION_CODES.P)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    try {
        val info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNING_CERTIFICATES)
        val signatures = info.signingInfo.apkContentsSigners
        val md = MessageDigest.getInstance("SHA")
        for (signature in signatures) {
            val md: MessageDigest
            md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val key = String(Base64.encode(md.digest(), 0))
            Log.d("Hash Key: ", "!@!@!$key!@!@!") }
    } catch (e: Exception) {
        Log.e("not fount", e.toString())
    }
}

해시키 찾으려고 구글링해서 코드 복사했는데 계속 다음과 같은 오류가 뜹니다. 어떻게 해야 하나요?

java.lang.NoSuchFieldError: No field signingInfo of type Landroid/content/pm/SigningInfo; in class Landroid/content/pm/PackageInfo; or its superclasses (declaration of 'android.content.pm.PackageInfo' appears in /system/framework/framework.jar)

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)