APKのインストール: 失敗 [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
Apkに署名した後、インストールで以下のエラーが発生します。失敗 [INSTALL_PARSE_FAILED_NO_CERTIFICATES] (インストールに失敗しました。
googleとBaiduで調べた結果、JDK8の署名には以下の2つのパラメータが必要であることがわかりました。
-digestalg SHA1 -sigalg MD5withRSA
フルシグネチャーのコマンドは以下の通りです。
jarsigner -keystore myKey.keystore -storepass hapk_123 -signedjar MyTest.apk MyTest-unsigned.apk myKey.keystore -digestalg SHA1 -sigalg MD5withRSA -tsa http://timestamp.digicert.com。
tsaパラメータが設定されていない場合、以下の警告が表示されます。
警告
tsa または -tsacert が提供されない場合、この jar にはタイムスタンプがありません。タイムスタンプがない場合、署名者の証明書の有効期限 (2070-05-29) 以降、あるいはそれ以降の失効日以降は、 ユーザーがこの jar を検証できなくなる可能性があります。
3 つのパラメータ digestalg、sigalg、tsa を設定せずに、Java 環境変数を jdk6 に切り替えたところ、すべてが OK となり、実行されたコマンドは次のようになりました。
jarsigner -keystore myKey.keystore -storepass hapk_123 -signedjar MyTest.apk MyTest-unsigned.apk myKey.keystore
<スパン
PS:改善以来、いくつかの投稿は、jdk7は、上記のjdk8が表示されると同じ問題を持っているので、個人的にテストされていません。
PS2、jarsignerの各パラメータのパースについて補足。
$jarsigner -h
使用法:jarsigner [オプション] jarファイルのエイリアス(鍵のエイリアス)
jarsigner -verify [オプション] jarファイル
[キーストア <url>] キーストアの場所
[--storepass <passphrase>] 鍵ストアの整合性を保つためのパスフレーズ
[--storetype <type>] 鍵屋のタイプ
[keypass <passphrase>] 秘密鍵のパスフレーズ(異なる場合)
[-sigfile <file>] .SF/.DSAファイル名
[-signedjar <file>] 署名済みJARファイル名
[-digestalg <algorithm>] サマリーアルゴリズム名
[-sigalg <algorithm>] 署名アルゴリズムの名前
[Verify] 署名された JAR ファイルを検証します。
[verbose] 署名・検証時に詳細を出力する。
[certs] 検証時に詳細を出力し、証明書を表示する。
[tsa <url>] タイムスタンプ機関の場所
[タイムスタンプ局の公開鍵証明書。
[altsigner <class>] 代替署名機構のクラス名
[代替署名機構の設置場所。
[-internalsf] 署名ブロックに .SF ファイルを含める。
[sectionsonly] リスト全体のハッシュをカウントしない。
[保護されている認証パスがあります。
[providerName <name>] プロバイダ名
[-providerClass <class> 暗号化サービスプロバイダの名前
[-providerArg <arguments>]] ... メインクラスファイルとコンストラクタの引数
関連
-
よくあるJavaのエラー50選(その1)
-
Androidアップグレード/ブラシ戦略(GoogleネイティブシステムPixel)
-
AndroidStdioのインストール時に「メインクラスが見つからない com/intelligi/idea/Main」というエラーが発生する。
-
エラーの解決方法 URIがandroid studioのxmlファイルに登録されていない。
-
-bash : gradlew コマンドが見つかりません。
-
Android 開発 キーボード イベント モバイル ミッキーマウス ケース
-
Android ビューの階層構造
-
Android studioでTextViewのフォントを変更する2つの方法(例:模造歌、公式スクリプト)。
-
AndroidManifest.xml ファイルが見つからない 解決策
-
Android.view.InflateException: バイナリ XML ファイルの行番号 0: クラス <unknown> を展開する際のエラー 解決方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン