Android 签名打包出现的错误的解决方法以及代码中获取应用签名信息方法

现象:
Android导出APK包时出现,编译调试时不会出现。
错误信息:

Error:(16) Error: "baidutieba_client_inavailable" is not translated in "en" (English) [MissingTranslation]
Error:(63) Error: "baidutieba" is not translated in "en" (English) [MissingTranslation]
Error:(67) Error: "share_to_baidutieba" is not translated in "en" (English) [MissingTranslation]

错误截图:
Android 签名打包出现的错误的解决方法以及代码中获取应用签名信息方法_第1张图片
解决办法:
resources 标签内增加两个属性即可:

  
<resources xmlns:tools="http://schemas.android.com/tools"  
  tools:ignore="MissingTranslation">  
resources> 
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

 public void getSingInfo() {
        try {
            PackageInfo packageInfo = getPackageManager().getPackageInfo(
                    "com.atguigu.p2p", PackageManager.GET_SIGNATURES);
            Signature[] signs = packageInfo.signatures;
            Signature sign = signs[0];
            parseSignature(sign.toByteArray());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void parseSignature(byte[] signature) {
        try {
            CertificateFactory certFactory = CertificateFactory
                    .getInstance("X.509");
            X509Certificate cert = (X509Certificate) certFactory
                    .generateCertificate(new ByteArrayInputStream(signature));
            String pubKey = cert.getPublicKey().toString();
            String signNumber = cert.getSerialNumber().toString();
            Log.e("TAG", "pubKey:" + pubKey);
            Log.e("TAG", "signNumber:" + signNumber);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

你可能感兴趣的:(开发常用功能点)