我试图在Splash类
上使用此代码获取realese应用程序的哈希值try {
PackageInfo info = getPackageManager().getPackageInfo("com.myapp", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
问题是getPackageManager()。getPackageInfo(" com.myapp",PackageManager.GET_SIGNATURES)会抛出一个无法找到包的错误。
包名称与AndroidManifest.xml中的名称相同
谢谢
答案 0 :(得分:0)
问题是我应该使用的包名是build.gradle中定义的包名,而不是AndroidManifest.xml中的包名。
我正在使用不同口味的Gradle,所以我将applicationId用于生产的味道。
我希望这对其他人有用。