217

androidmanifest.xmlファイルを編集して、デフォルト/メイン/スタートアップ(あなたがそれを何と呼んでも)アクティビティを変更しようとしていました。私がしたのは、android:nameプロパティを変更することだけでした。ただし、これはアプリ全体を完全に破壊しました。インストールしようとすると失敗して読み取ります。

インストールエラー:INSTALL_PARSE_FAILED_NO_CERTIFICATES

以前の状態に戻そうとしても、同じエラーが発生していました...何をしましたか?

4

38 に答える 38

209

このエラーは、間違った署名構成を使用した場合にも発生する可能性があることがわかりました。ここで説明するように、Android7.0では新しい署名スキームV2が導入されています。V2スキームは、V1スキームで行われるように、JARだけでなく、APK全体に署名します。V2のみで署名し、7.0より前のターゲットにインストールしようとすると、JAR自体が署名されておらず、7.0より前のPackageManagerがV2 APK署名の存在を検出できないため、このエラーが発生します。

すべてのターゲットシステムと互換性を持たせるには、Android Studioの[署名済みAPKの生成]ダイアログで両方の署名バージョンボックスをオンにして、APKが両方のスキームで署名されていることを確認します。

ここに画像の説明を入力してください

7.0のターゲットのみが予想される場合は、V1署名を含める必要はありません。

于 2017-03-29T15:34:40.567 に答える
71

AndroidManifest.xmlファイルを直接編集しました.apkか?もしそうなら、それはうまくいきません。

.apkマーケットからインストールしない場合でも、携帯電話にインストールする場合は、すべてのAndroidに署名する必要があります。開発ツールは、開発証明書を使用して署名することでこれを回避しますが、.apkまだ署名されています。

これの1つの使用法は、デバイスが.apkインストールされたアプリケーションの有効なアップグレードであるかどうかを判断できるようにすることです。これは、証明書が同じである場合に使用されるためです。

したがって、アプリに変更を加えた場合は、.apk正しく署名されるように再構築する必要があります。

于 2010-05-26T16:13:28.923 に答える
54

これは私のJDKバージョンが原因であることがわかりました。

'ant'でこの問題が発生しましたが、これはドキュメントに記載されているこの注意が原因でした。

http://developer.android.com/guide/publishing/app-signing.html#signapp

注意:JDK 7以降、デフォルトの署名アルゴリズムが変更されたため、APKに署名するときに署名とダイジェストアルゴリズム(-sigalgおよび-digestalg)を指定する必要があります。

私はJDK7を持っています。Antログで-vを冗長に使用しました。

$ ant -Dadb.device.arg=-d -v release install
[signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments:
[signjar] '-keystore'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore'
[signjar] '-signedjar'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk'
[signjar] 'mykey'
 [exec]     pkg: /data/local/tmp/PairFinder-release.apk
 [exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

JARに手動で署名し、zip整列しましたが、わずかに異なるエラーが発生しました。

$ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey
$ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
641 KB/s (52620 bytes in 0.080s)

私はそれがここで答えたのを見つけました。

アンインストールせずにINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATESを処理する方法

アンインストールするだけでうまくいきました!

$ adb -d uninstall com.kizbit.pairfinder
Success
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Success
641 KB/s (52620 bytes in 0.080s)

これで、署名時にこれらのオプションを使用するようにbuild.xmlを変更するだけで済みます。

ここにあります:C:\ Program Files \ Java \ android-sdk \ tools \ ant \ build.xml

            <signjar
                    sigalg="MD5withRSA"
                    digestalg="SHA1"
                    jar="${out.packaged.file}"
                    signedjar="${out.unaligned.file}"
                    keystore="${key.store}"
                    storepass="${key.store.password}"
                    alias="${key.alias}"
                    keypass="${key.alias.password}"
                    verbose="${verbose}" />
于 2012-04-10T04:58:38.267 に答える
34

ほとんどの場合、このエラーの解決策は本当に簡単です。

  1. APKをアンインストールします
  2. Androidプロジェクトをクリーンアップする
  3. Androidプロジェクトをビルドする
  4. あなたのapkをインストール/実行します
于 2013-04-10T11:56:09.310 に答える
18

keytoolでargsを使用して(私にとって)解決しました

-sigalg MD5withRSA -keyalg RSA -keysize 1024

jarsignerで使用します

-sigalg MD5withRSA -digestalg SHA1

で見つかったソリューション

Android APK署名にはどのようなピットファルがありますか?

于 2012-08-20T23:07:10.540 に答える
14

このエラーは、署名構成を追加した場合(署名キーを作成し、「プロジェクト構造」>「モジュール」>「署名構成」に追加)、「プロジェクト構造」>「バリアントのビルド」>「」で指摘するのを忘れた場合にスローされる可能性があります。ビルドタイプ">"署名構成"。

署名設定フィールドは空であってはなりません!(下の写真を参照してください)それ以外の場合は、

"INSTALL_PARSE_FAILED_NO_CERTIFICATES...APK signature verification failed." 

releaseバリアントをインストールしようとするとエラーが発生します。(または同じ設定ミスの別のバリアント)

署名構成の例

于 2020-10-02T10:52:47.650 に答える
11

私も同じ問題に直面していました。最初にV2を使用してビルドを生成し、それをOS 5.1で実行されているモバイルデバイスにインストールしましたが、同じ問題が発生しました。しかし、ビルドはOS7.0で実行されているタブレットで正常に機能していました。そのため、V1 Jar署名を使用してビルドを生成しましたが、両方のデバイスで正常に機能していました。

結論: AndroidOS7.0より前のデバイスをサポートしている場合。V1jar署名を使用してビルドを生成します。

于 2019-05-22T09:40:51.507 に答える
10

最近、AndroidStudio4.0へのアップグレード中にこのエラーが発生しました。原因は、プロジェクトの署名構成でV2署名が無効になっていることでしたbuild.gradle

解決策は、それを削除するか、デフォルト値であるv2SigningEnabled falseに明示的に設定することでした。true

android {    
    signingConfigs {
        dev {
            v2SigningEnabled true
        }
     }
}
于 2020-06-02T16:57:35.903 に答える
8

私の場合、リリースビルドをビルドして実行できましたINSTALL_PARSE_FAILED_NO_CERTIFICATESが、デバッグビルドを実行しようとするとエラーが発生しました。

解決策は、ファイルを削除してdebug.keystoreADTに再作成させることでした。どうやら期限切れになっていたようです。

より良い長期的な解決策はdebug.keystore、ADTに作成させるのではなく、1年後に期限切れにならないを明示的に作成することです。これを行うためのコマンドは次のとおりです。

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000

プロンプトが表示されたら、次の値を入力します。

  • 姓名:Androidデバッグ
  • 組織単位:Android
  • 組織名:不明
  • 都市または地域:不明
  • 州または県:不明
  • 国コード:米国
于 2013-05-29T23:15:43.940 に答える
7

私の場合、実際のデバイスのAndroidバージョンよりも大きいMinimumSDKを使用してプロジェクトをインストールしていました。別のデバイスを使用して解決しました。

私のプロジェクトMinSDK->24

私の電話のAndroidバージョン->21

于 2021-02-08T12:54:28.980 に答える
6

新しいAndroidStudioバージョン3.2以降では、releaseインストールを実行しようとしていて、署名構成を定義していない場合、エラープロンプトが表示され、インストールが失敗します。ビルドを実行debugするか、署名構成(V1またはV2)を正しくセットアップする必要があります。

于 2018-12-18T13:17:06.373 に答える
5

これは醜いですが高速なソリューションです。7ではなくJDK6を使用してください。

Chloeの回答を読んだ後、JDK 7をアンインストールし(現在は必要ありません)、JDK6をインストールしました。これで修正されました。より良い解決策は、antがJDK 6を使用するようにすることです(7をアンインストールせずに)。おそらく、このプロパティを変更/設定する可能性があります。

java.library.path

local.propertiesファイル内。プロジェクトディレクトリ(ルート)にあります。

AndroidはとにかくJDK7では動作しません(6または5のみ)。したがって、antスクリプトでもJDK6または5を使用するようにすることはおそらく良い解決策です。

于 2012-05-11T10:44:18.260 に答える
5

以前に生成されたビルドと現在のビルドと現在のバージョンで、v1(jar署名)とv2(完全なAPK署名)の間で署名バージョンが競合しているためです。

[署名済みAPKの生成]ダイアログで適切な署名バージョンをチェックするには

于 2017-03-31T15:46:15.583 に答える
5

ほとんどの答えは本当です。発生する他のいくつかの理由は

►最小SDKがデバイスSDKよりも小さい。
►同じパッケージ名の古いアプリケーションがデバイスにあります

于 2020-02-11T11:03:40.127 に答える
3

また、あなたはチェックすることができます

Project Structure-> Default Config->Signing Config

必要なものをすべて追加した後

于 2019-11-19T13:53:45.913 に答える
2

.jarこれは、ファイルを含むライブラリを 含めようとした場合に発生する可能性がありAndroidManifest.xmlます。

  • 純粋なJavaの場合は、.jarエクスポートに含めないようにしてください。
  • 純粋なJavaではない場合(つまり、Androidプロジェクトである場合)、ライブラリプロジェクトとして含める必要があります。
于 2013-11-02T19:26:08.783 に答える
1

環境変数JAVA_HOMEを(JDK 7ではなく)JDK 5または6に設定すると、エラーが修正されました。

于 2012-06-04T09:16:24.033 に答える
1

ant releaseディスク容量が足りなくなったために失敗したことをリリースしたため、このエラーが発生していました。

于 2016-06-17T05:07:08.817 に答える
1

最小SDKが28のアプリがあり、SDKバージョンが23のエミュレーターで再生を実行しているため、今日このエラーがスローされます。通常、これは不可能です(ASグレーが再生ボタンを表示します)が、今日はそうではありません。多くの。

于 2020-01-28T17:16:36.093 に答える
1

私の場合、新しい署名構成をに追加するのを忘れています

Project Structure-> Default Config->Signing Config

于 2021-03-16T21:10:01.187 に答える
1

[実行]->[構成の編集...]->[Androidアプリ]->[アプリ]->[インストールオプション]に移動します

APK from app bundle次に、の代わりにに変更しますDefault APK ここに画像の説明を入力してください

于 2021-11-04T20:51:56.693 に答える
0

しばらくして、このテーマに関する複数のオンラインスレッドを作成した後、プロジェクトを修正することができました。

これは主に、最後に入力したファイル(画像やレイアウトなど)を考慮に入れています。それらを削除すると、うまく機能し、プロジェクトを再構築できます。

于 2012-05-03T18:28:30.687 に答える
0

Eclipseコンソールでこのエラーが発生していました。同じ内容で名前が異なる2つのjarファイルがあり、それらが互いに競合していたことがわかりました。そのうちの1つを削除して、デバイスにアプリをインストールすることができました。

于 2014-08-22T13:38:32.987 に答える
0

apiv23を実行している電話にAndroidNプレビューに対してビルドされたXamarinプロジェクトをインストールしようとすると、このエラーが発生しました。解決策はそれをしないことです。

于 2016-06-27T18:25:52.850 に答える
0

このエラーを取得する別の方法はant、macOSでビルドしIcon\r、アプリのソースツリーにFinderアイコンファイル()を含めることです。ファイル名のキャリッジリターンに対応できないようです。APKのjarsigner場合は署名が有効であると主張しますが-verify、常にデバイスにインストールされないAPKになります。皮肉なことに、Googleドライブファインダープラグインはファインダーアイコンファイルの優れたソースです。

解決策は、問題のあるファイル(APKではとにかく役に立たない)を次のような指定子で除外することですfileset

    <exclude name="**/Icon&#13;" />
于 2017-03-07T05:30:38.007 に答える
0

この問題は、署名されていないバージョンのAPKをインストールしている場合に発生します。正しいAPKをインストールしているかどうかを確認してください。

于 2019-01-30T05:11:05.790 に答える
0

ionic / Visual Studio Code(デバイスでAndroidを実行)で問題が発生しました:

モバイルデバイス([設定] / [アプリ])でアプリをアンインストールしましたが、エラーがなくなり、アプリが起動しています。

于 2019-03-12T08:29:16.063 に答える
0

まず、それを試してみてください。

  • Gradleスクリプト→bulid.gradle(module:app)→に移動し、(minSdkVersion)値を変更する必要があります。例として、26を使用した場合は、(minSdkVersion 20)のように値を減らすことができます。
  • 次に試してください(今すぐ同期)。
于 2020-03-21T14:20:41.827 に答える
0

エミュレーターを使用している場合はリセットしてみてください。モバイルで最初にアプリケーションをアンインストールしてから開発者モードをオフにしてからオンにすると、問題は解決します。

于 2020-04-22T01:59:30.897 に答える
0

ビルドバリアントがAndroidStudioでデバッグ(リリースではなく)に設定されていることを確認します(ビルドバリアントパネルを確認してください)。

于 2020-08-29T11:40:18.677 に答える
0

JetBrainsRiderIDEでこの問題が発生しました。

完全エラー

INSTALL_PARSE_FAILED_NO_CERTIFICATES:/data/app/vmdl1252907876.tmp/base.apkから証明書を収集できませんでした:null配列の長さを取得しようとしました

問題は、JDK8を使用した結果でした。JDK11に切り替えると問題が解決しました。

ここに画像の説明を入力してください

于 2020-10-08T14:41:37.470 に答える
0

ターミナルを開き、「プロジェクトのクリーン」と入力します-> Enterキーを押します->この問題は、数秒以内に自動的に解決されます。

于 2021-02-06T01:29:16.390 に答える
0

私にとっての単純だがばかげた修正は、JREとJDKをインストールすることでした。

仕事の割り当てのためにAndroidStudioを新規インストールして新しいKotlinプロジェクトを開始しました。エミュレートされた電話にデフォルトのテンプレートを作成しようとしましたが、指定されたエラーが発生しました。

私は次のことをしました:

  • 最新のJREおよびJDKバージョンをインストールしました
  • CMDを開き、java -versionインストールされていることを確認しました。有効なバージョンメッセージが返されました。
  • Android Studioを再起動し、プロジェクトをロードしました
  • ボタンをクリックしPlayて、エミュレートされたデバイスにインストールします。
  • すべて正常に動作しています。
于 2021-03-24T11:56:29.967 に答える
0

アプリセンターでビルドおよび配布するXamarinユーザーの場合、アンインストールしても問題が解決しない場合があります。問題は、ターゲットSDKを30以上にアップグレードする場合、キーストアファイルをアプリセンターのビルド構成に再アップロードする必要があることです。これにより、アプリセンターはv2で署名するように強制されます。これはv30以降で必要になります。このgithub問題コメントへの完全なクレジット

于 2021-07-27T14:30:33.040 に答える
0

この問題は、run on multiple devicesAndroidStudioの新機能で発生しました。

APIレベル22、27、30のエミュレーターが3つありました。複数実行オプションでこのエラーが発生しましたが、各デバイスにアプリを個別にインストールした場合は発生しませんでした。

于 2021-08-22T20:11:25.443 に答える
0

Azureビルドパイプラインを使用していて、Android署名タスクを使用してAPKに署名している場合は、必ずバージョン3以降を使用してアプリに署名してください。これにより、Android11以降に必要なv2スキームのAndroid署名が有効になります。

于 2021-09-02T11:39:26.380 に答える
0

たぶん、ビルドバリアントをデバッグからリリースに変更しました。リリースバリアントには特別な証明書が必要です。メニュービルド->ビルドバリアントの選択...でビルドバリアントを変更できます。

于 2022-01-10T23:42:38.093 に答える
-1

You can also just change the build variant to Debug and you should be good to goここに画像の説明を入力してください

于 2021-02-07T06:01:58.883 に答える