获取SHA-1指纹的方法和获取指纹的方法一样吗?之前,我正在运行这个命令:

我不清楚我得到的结果是不是SHA-1指纹。有人能解释一下吗?


当前回答

如果你使用android studio使用简单的步骤

运行你的项目 点击Gradle菜单 展开Gradle Tasks树 双击android -> signingReport,看看魔术吧 它将在Run选项卡上告诉您所有信息

如果Android Studio < 2.2 .

来自android studio 2.2 结果将在运行控制台下可用,但使用高亮切换按钮

或 第二种方法是 在android studio new ->谷歌地图活动中创建新项目

然后打开google_maps_api.xml xml文件如图所示,你会看到你的SHA密钥

其他回答

从调试密钥库中,我们可以在Eclipse中获得SHA1值。从菜单访问: 窗口->首选项-> Android ->构建

但它不适用于生产密钥库。

因此,要从生产密钥库中获取SHA1值,请执行以下命令: Android Tools ->导出签名应用程序包。遵循apk签名的过程,SHA1将显示为证书。

除了Lokesh Tiwar的回答

对于发布版本,在gradle中添加以下内容:

android {

defaultConfig{
//Goes here
}

    signingConfigs {
        release {
            storeFile file("PATH TO THE KEY_STORE FILE")
            storePassword "PASSWORD"
            keyAlias "ALIAS_NAME"
            keyPassword "KEY_PASSWORD"
        }
    }
buildTypes {
        release {
            zipAlignEnabled true
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

现在运行Lokesh's Answer中的signingReport将显示发布版本的SHA 1和MD5密钥。

如果你正在使用Android Studio IDE,那么你可以得到SHA1有价值的所有构建变体,只需点击一下。

在Gradle Projects窗口>选择根项目> signingReport >双击

Next

转到变体:发布为发布

转到变体:调试调试

keytool -v -list -keystore "< debug. keystore "Keystore路径>" 如果您不知道调试的路径。密钥存储库,您可以找到您的调试。通过检查windows—>首选项—>android—>构建Keystore路径

我准备了一步一步的教程,以展示如何在模拟器上使用谷歌映射android v2 (android 4.2.2) 看看我的博客:http://umut.tekguc.info/en/content/google-android-map-v2-step-step

首先有一个与fb-sdk android-support-v4.jar相同的.jar文件。 然后使用以下命令生成SHA1密钥:

PackageInfo info;
try {

    info = getPackageManager().getPackageInfo(
        "com.example.worldmission", PackageManager.GET_SIGNATURES);

    for (Signature signature : info.signatures) {
        MessageDigest md;
        md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String something = new String(Base64.encode(md.digest(), 0));
        Log.e("Hash key", something);
        System.out.println("Hash key" + something);
    }

} catch (NameNotFoundException e1) {
    Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
    Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
    Log.e("exception", e.toString());
}