코드 사용보다는 cmd 창에서 명령어로 구하는것이 더 간편하다
디버그 해시키 값 구하기
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
릴리즈 해시키 값 구하기
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | PATH_TO_OPENSSL_LIBRARY\bin\openssl base64
openssl을 사용하여 해시키 값을 구하면 이상한 해시키 값을 가져올 수 있다고해서 코틀린 코드를 이용해 찾았더니
E/MapViewLocationManager 에러가 나오지않았다.
import android.content.pm.PackageManager
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Base64
import android.util.Base64.encodeToString
import android.util.Log
import android.view.ViewGroup
import androidx.annotation.RequiresApi
import net.daum.mf.map.api.MapView
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
getHashKey()
}
val mapView = MapView(this)
val mapViewContainer = findViewById(R.id.map_view) as ViewGroup
mapViewContainer.addView(mapView)
}
private fun getHashKey() {
var packageInfo: PackageInfo? = null
try {
packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
}
if (packageInfo == null) Log.e("KeyHash", "KeyHash:null")
for (signature in packageInfo!!.signatures) {
try {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
Log.d("KeyHash", Base64.encodeToString(md.digest(), Base64.DEFAULT))
} catch (e: NoSuchAlgorithmException) {
Log.e("KeyHash", "Unable to get MessageDigest. signature=$signature", e)
}
}
}
}
혹은 해당 프로젝트 폴더의 cmd창으로 이동해서 아래 명령어를 입력한다.
openssl이 설치되어있어야한다.
keytool -exportcert -alias androiddebugkey -keystore "%USERPROFILE%\.android\debug.keystore" -storepass android -keypass android | openssl sha1 -binary | openssl base64
출처 : https://snaildeveloper.tistory.com/11
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 어플 아이콘 변경 (0) | 2021.07.24 |
---|---|
카카오맵 NativeBaseNetConnection 해결법 (0) | 2021.07.24 |
[Android] 프로젝트명 변경 (0) | 2021.07.23 |
adb 명령어 (0) | 2021.07.22 |
[scrcpy] 안드로이드 디바이스 PC 화면에 미러링 (0) | 2021.07.22 |
댓글