web-dev-qa-db-ja.com

署名済みapkを手動でデバイスにインストールできません。エラー「アプリがインストールされていません」が発生しました

アプリをGooglePlayに公開したいのですが、まず、使用したすべてのAPIキーがリリースバージョン(GMaps、Facebookなど)で正しく機能することを確認するために、署名済みapkで最後のテストを行います。

だから私はちょうどリリースキーでアプリの署名付きバージョンを作成し、デバイスにアプリをインストールしようとするとiエラーが発生しました:

enter image description here

Apkをデバイスにコピーして、apkインストーラーアプリでインストールしようとしました。

奇妙なことは、デバッグ署名キーを使用して同じプロセスを実行すると、すべてが順調で、アプリをインストールして実行できることです

手順のステップは次のとおりです:

リリースキーを選択し、パスワードを入力します。

Here are the steps of the procedure:

デバッグの代わりにリリースビルドタイプを選択します

I do select release build type instead of debugging

念のためiもgradleファイルで署名キーで定義されていますが、必要かどうかはわかりません。

Just in case i also defined in the gradle file the signing keys but I must admit i dont know is it necessary.

私は今7回7回試してみましたので、この問題はパスワードのタイプミスではなく、だと思いますこれは標準デバッグAndroid署名キーで動作します。

可能であれば助けてください。

89
Adam Varhegyi

Android 5.0以上のデバイスを使用している可能性があります。

設定 - >アプリ - >アプリをクリックしてください。 --->アクションバーメニューのApp infoページに「Uninstall for All users」というオプションがあります。アプリは完全にアンインストールされますので、新しいバージョンを問題なくインストールすることができます。これがお役に立てば幸いです

下のリンクから私の解決策をチェックしてください。

リンク1

お役に立てば幸いです。

67

現在のUpdated Android Studio 2.3ユーザーにとって、Androidスタジオは大きな進歩を遂げているため、今日ではAndroid開発にEclipseを使用する人はほとんどいないので、この答えはあなたのためです。

だから、あなたのSigned apkファイルを作成するためにこの方法に従ってください。

  1. Build> Signed apkを生成します。
  2. Keystore pathを作成してください。
  3. Password, alias, key passwordを入れてください。
  4. Build typeはそれに応じて選択してください(例えばプレイストアでリリースするにはreleaseを使用してください)。
  5. Signature Versionは、V1V2の両方のチェックボックスを選択します。
  6. Finsih
  7. Apkを保存する場所として選択したExplorerから移動すると、.apkで使用しているapp-release.apkファイル名が表示されます。
58

signature Version v1とv2を選択すると、両方とも問題が解決しました。それを試してください enter image description here

44
Shubham Soni

Build> Build APKからapkを生成している限り、同じことが起こりました。問題なく何度でもapkをインストールおよびアンインストールできましたが、代わりにBuild> Generate Signed APKを生成した場合、apkを電話機に渡してインストールしようとすると、許可されるのは1つだけでした。次のようなメッセージが出てきました。

enter image description here

それまでは「INSTALL IN ANY WAY」を選択すればすべて問題ありませんでしたが、アプリをアンインストールして再インストールしようとした場合(可能なシナリオ)、次のことが起こりました。

enter image description here

そこで私は(Google Play内で)>メニュー> Play Protect>セキュリティの脅威の検索(無効化)を達成した、Play Protectを無効にすることで問題を解決した。

enter image description here

enter image description here

37
Gerrard

「アプリがインストールされていません」は、同じパッケージのアプリが同じデバイスに既にインストールされている場合に表示されます。署名したAPKにする前に、あなたがテスト目的に使用していた最初のアプリケーションを削除してください。これはうまくいくでしょう。乾杯!

13
Tara

Signature Version v1とv2の両方を選択すると問題が解決します

enter image description here

v1スキーム

JARファイルは、コマンドラインjarsignerツールを使用するか、またはJava.security APIを介して直接署名することができます。 JARファイルがjarsignerツールによって署名されている場合、META-INFディレクトリ内の署名に関連しないファイルを含むすべてのファイルエントリが署名されます。署名付きJARファイルで署名されたすべてのファイルエントリに対して、マニフェストにまだ存在しない限り、個々のマニフェストエントリが作成されます。

V2スキーム

v1シグネチャは、Zipメタデータなど、APKの一部を保護しません。 APK検証者は、信頼されていない(まだ検証されていない)データ構造を大量に処理してから、署名の対象外のデータを破棄する必要があります。これはかなり大きい攻撃面を提供します。さらに、APKベリファイアはすべての圧縮エントリを解凍する必要があるため、より多くの時間とメモリを消費します。これらの問題に対処するために、Android 7.0ではAPK Signature Scheme v2が導入されました。

デフォルトでは、Android Studio 2.2とAndroidプラグインfor Gradle 2.2は、APK署名方式v2とJAR署名を使用する従来の署名方式の両方を使用してアプリに署名します。

APK Signature Scheme v2を使用することをお勧めしますが必須ではありません。 詳細をご覧ください

9
Lineesh K Mohan

ここで私はこの問題を解決しました

この問題の背後にある理由は、電話に同じパッケージ名を持つアプリケーションが既に存在していますが、電話メニューには見つからないことです(Uはすでにアンインストールされていますが、実際はまだ電話にあります)。

アプリケーションを確認するには、電話にアクセスしてくださいSETTINGS - > APPS。そこにあなたはアプリケーションを見ることができますが、その中のUNINSTALLボタンは無効にされるかもしれません。メニューオーバーフローボタンをクリックしてすべてのユーザーのためにアンインストールを確認します。

すべてのユーザーのアンインストールを実行した後、私は正常に私の署名付きapkをインストールしました。電話からアプリをアンインストールするのにadbを使うこともできます。

adb uninstall package name

これに加えて、あなたの携帯電話が複数のユーザーをサポートしている場合それからそれぞれのアプリが他のユーザーのためにインストールされていないかどうか確認してください。それが他の人のためにインストールされているならば、それから最初に前のアプリをアンインストールして、もう一度やり直してください

4
Alex Chengalan

上記のshubham soniの答えは私にとってはうまくいきます、実際にはAndroid version> = 5.0に起こります。上記ではapkの作成中にこれを使用するだけでインストールできます enter image description here ...

4
Amit raj

あなたは外部SDカードストレージからAPKファイルを実行するためかもしれません。内部storagem問題にAPKファイルをコピーするだけで解決します

3
Vu Thai Duy

Build.Gradle(module:app)に移動してください

これを使用 - minifyEnabled false

3
Abhinav Pandey

minifyEnabled false

すべてのフォーラムで3日間の調査を経て、私にとってうまくいったのはそれだけです!

3
Toto1

Android Studio 3.0以上

説明のとおり ここ

注:[実行]ボタンをクリックすると、testOnly = "true"でAPKが構築されます。つまり、APKはadb(Android Studioで使用)経由でのみインストールできます。人々がadbなしでインストールできるデバッグ可能なAPKが必要な場合は、デバッグバリアントを選択して[Build Bundle/APK]> [Build APK]をクリックします。

AndroidManifest.xmlにアプリケーションタグ内にAndroid:testOnly="false"を追加します

参照: https://commonsware.com/blog/2017/10/31/Android-studio-3p0-flag-test-only.html

3
Ketan Ramani

非常に古い質問ですが、私の解決策はversionCode(増加)をbuild.gradleに変更することでした

2
mateusz-dot

これは、署名バージョンを選択したために発生する可能性があります。一部の電話機では、シグニチャバージョンがV2として選択されているとインストールエラーが発生します。それでそれが起こるならば、V1を選んでみてください、それはきっとうまくいきます。

1

3.0を超えるAndroid St​​udioバージョンの場合

Build-> output-> apkフォルダーからデバイスで実行した後、apkを直接使用できないようです。

Android studio 3.0にアップグレードした後、ビルド->ビルドApkに移動して、ビルドからapkをコピーする->出力-> apk->デバッグする

enter image description here

0
Keshav Gera

[ファイル]> [プロジェクト構造]> [バリアントのビルド]> [リリースの選択]> [署名構成]が空でないことを確認する>ドロップウィンドウから$signingConfigs.releaseを選択する場合

これをAndroid St​​udio 3.1.4で行いました。リリースapkとリリースキーを作成し、アプリグラドルに情報を追加する上記のすべての手順を実行した後、リリースapkを作成できました。乾杯!

0
Treewallie