1

Eclipse で ADT によって apk をエクスポートし、この apk を avd にインストールしようとしましたが、「アプリケーションがインストールされていません」というメッセージが表示されました。

logcat を確認したところ、次のことがわかりました。

W/PackageParser(59): java.lang.SecurityException: META-INF/MANIFEST.MF has invalid digest for res/drawable-mdpi/ic_launcher.png in /data/app/vmdl25264.tmp
E/PackageParser(59): Package com.ep.android has no certificates at entry res/drawable-mdpi/ic_launcher.png; ignoring!

apkのファイル「META-INF/MANIFEST.MF」で、これを見つけました:

Name: res/drawable-mdpi/ic_launcher.png
SHA1-Digest: 4ss2KZ3FzkmfE6HAAsVu0aJKx1U=

そこで、独自のJavaプログラミングを使用してpngファイルのSHA1-Digestを生成しようとしましたが、結果は「sjmKOs4BYDXg7COdeTc8tIfPBR0 =」で、まったく異なります。SHA1-Digest を生成するための私の Java コードは次のとおりです。

public static void main(String[] filename) throws NoSuchAlgorithmException,
        Exception {

    MessageDigest md = MessageDigest.getInstance("SHA1");
    FileInputStream in =  new FileInputStream("./ic_launcher.png");
    int bytes = 0;
    while ((bytes = in.read()) != -1) {
        md.update((byte)bytes);
    }

    in.close();
    byte[] thedigest = md.digest();
    System.out.println(Base64Encoder.encode(thedigest));
}

avd と私のコードの両方で、apk の MANIFEST.MF の SHA1-Digest が無効であると見なされているようです。したがって、ADT の SHA1-Digest ジェネレーターがここで何か問題を起こしたと思います。バグですか?それとも私は何かを逃した?

4

0 に答える 0