署名されたAPKをデバイスに手動でインストールできず、エラー「アプリがインストールされていません」が表示される


107

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

そのため、リリースキーを使用してアプリの署名済みバージョンを作成しました。アプリをデバイスにインストールしようとすると、エラーが発生しました。

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

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

奇妙なことに、デバッグ署名キーを使用して同じプロセスを実行すると、すべて問題なく、アプリをインストールして実行できます。

ここにある手順のステップは:

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

手順は次のとおりです。

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

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

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

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

私は今7のように7回試したので、この問題は単なるタイプミスされたパスワードではなく、標準のデバッグandroid署名キーでこれを機能させることができると思います。

できれば助けてください。


1
サラム。この回答で問題が解決する可能性があります。http
//stackoverflow.com/a/42745459/1676736

私は同じ問題に直面しています。本当の理由は何でしたか?あなたはそれを見つけましたか?@Adam Varhegyi
Rohit Singh

@RohitSingh以下の答え、笑。
アダムVarhegyi 2018

アプリが完全にアンインストールされなかったという意味ですか?または、Android 5.0(またはそれ以上)のみです。
Rohit Singh

1
@RohitSingh私の問題は答えが説明したとおりでした。アプリは電話の別のユーザー用にインストールされましたが、別のユーザーには表示されませんでした。そのため、「すべてのユーザー」のためにアンインストールする必要がありました
Adam Varhegyi

回答:


81

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

設定->アプリ->アプリをクリックします。--->アクションバーメニューの[アプリ情報]ページには、[すべてのユーザーからアンインストールする]というオプションがあります。アプリが完全にアンインストールされ、新しいバージョンを問題なくインストールできるようになります。これがあなたを助けることを願っています

以下のリンクから私の解決策を確認してください。

リンク1

それがあなたを助けることを願っています。


どのようにして彼らはそのようにこれを行うことができるでしょうか。おかげさまで働いています。
Adam Varhegyi

2
このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
SOFe 2017

男は本当にありがとう、このバグは私が理解するのに1週間かかりました
DiegoVinícius18年

嬉しい、あなたを助けました!! @DiegoVinícius
ラグースワミナサン

66

現在の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 VersionV1V2チェックボックスの両方を選択します。
  6. Finsih
  7. explorerapkを保存するために選択した場所から移動すると.apkapp-release.apk使用するファイル名が表示されます。

14
シグネチャーV1を選択するとそれが行われました
Meanman

あなたは私の多くの時間を節約しました
curiousMind

私のために働きなさい。時間を節約する 。ありがとう
YeeKhin

5
チェックの両方V1V2ソリューションでした!
Alex Jolig

1
V1を確認すると問題は解決しました。以前は、V2のみがチェックされていました。
BluJ IT

51

署名バージョンv1とv2の両方を選択すると、問題が解決しました。ここに画像の説明を入力してください


4
これはまさに私の問題でした。V1(jar署名)もマークする必要があるのはなぜですか?そして、グーグルはこれを知っていると私たちにどのように期待しますか?
A.Alqadomi 2017

必須ではありません。可能であれば、これらのチェックボックスの両方をチェックする必要がありますが、新しいV2署名メカニズムで問題が発生した場合は、問題が発生した場合に両方をチェックできます。
Shubhamhackz

43

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

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

それまでは、[INSTALL IN ANY WAY]を選択した場合は問題ありませんでしたが、アプリをアンインストールして再インストールした場合(考えられるシナリオ)、次のことが起こりました。

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

だから私は(Google Play内で)達成した再生保護を無効にすることで問題を解決しました>メニュー>再生保護>セキュリティ脅威の検索(無効)。

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

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


この解決策は私にとってはうまくいきます。Google +1によるもう1つの変更
Ready Android

あなたは私の命を救いました!
akcoban

なぜこれが起こるのか教えていただけませんか?これを修正するために私が間違っていることは何ですか?
sparkhead95

16

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


8
ええ、私は知っていますが、以前にインストールされていません。
アダムVarhegyi

6
現在のアプリを削除せずに、より高いバージョンのAPKをインストールするにはどうすればよいですか?
user7856586

12

署名バージョンv1とv2の両方を選択すると問題が解決します

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

v1スキーム

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

V2スキーム

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

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

APK署名スキームv2を使用することをお勧めしますが、必須ではありません。 詳細をご覧ください


10

Android Studio 3.0以降

ここで説明したよう

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

AndroidManifest.xmlandroid:testOnly="false"内にApplicationタグを追加します

リファレンス:https : //commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


7

上記のshubham soniの答えは私にとってはうまくいきます、実際にはandroidバージョン> = 5.0が発生します。上記では、apkの作成中にこれを使用してインストールできますここに画像の説明を入力してください...


1
なぜこの重複した答えですか?
sziraqui 2018年

@sziraqui:Subhankar soniは、「署名されたapkをデバイスに手動でインストールできないため、エラー「アプリがインストールされていません」が発生する理由について言及していません。私の答えに何か問題がありますか?.Androidバージョン<= 5.0の場合、両方の署名バージョンのチェックボックスをマークせずに同じapkをインストールできます
Amit raj

あなたの答えは、元の答えにもう1点追加するだけなので、コメントにする必要があります。これを回答として投稿する場合は、android 5.0の主張を裏付ける何らかの引用を追加する必要があります。問題が実際にAndroidバージョンではなくAndroid IDEに関連している場合はどうなりますか?
sziraqui 2018年

回答のおかげで、V1とV2の両方の署名を有効にしてみるというアイデアが得られました。以前はV1のみを使用していました
jasxir

6

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

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

電話にアプリケーション行くを参照するにはSETTINGS - > APPS。そこにアプリケーションが表示されますが、その中で[アンインストール]ボタンが無効になっている可能性があります。メニューのオーバーフローボタンをクリックして、すべてのユーザーのアンインストールを確認します

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

adb uninstall package name

これに加えて 、モバイルが複数のユーザーをサポートしている場合は、他のユーザー用にそれぞれのアプリがインストールされていないかどうかを確認してください。他の人のためにインストールされている場合は、まず以前のアプリをアンインストールしてから、もう一度お試しください


4

それはかなり古い質問ですが、私の解決策はbuild.gradleのversionCode(増加)を変更することでした




3

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


1

これは、署名バージョンの選択が原因で発生する可能性があります。一部の電話機では、シグニチャバージョンがV2として選択されていると、インストールエラーが発生します。その場合は、V1を選択してみてください。確実に機能します。


1

今日も同じ問題に直面し、「新しい」Google Play署名でAPKに署名したことを思い出しました:


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


Google Play署名でアプリケーションに署名したかどうかを確認してください。

あなたがした場合:

  • APKをGoogle Consoleにアップロードして更新をインストールします(通常、アプリケーションを更新するときのように):

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


  • 正常にアップロードされたら、 Artifact library、メニューます。
  • アップロードしたapkが表示されます。
  • ダウンロードボタンを押して、を選択しますDownload derived APK

これでapkをインストールできるようになります。


0

Android Studioのバージョンが3.0以降の場合

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

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

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


この質問のタイトル- "Cannot install signed apk"。あなたはデバッグAPKを参照しています。
KRK

0

ファイル>プロジェクト構造>バリアントのビルド>リリースを選択> 'Signing Config'が空でないことを確認>ドロップウィンドウから選択した場合 $signingConfigs.release

私はこれをAndroid Studio 3.1.4で行い、上記のリリースAPKとリリースキーを作成し、アプリGradleに情報を追加した後、リリースAPKを作成することができました。乾杯!


$signingConfigs.releaseは利用できません$signingConfigs.debug。利用できるのは利用できるだけです。
KRK

次に、[ビルド]> [APKの生成]> [APKを選択]に移動し、指示に従います。
Treewallie

0

私のAndroidアプリケーションでも同じ問題に直面していました。一部のライブラリを更新してから、署名APKを作成しました。今その仕事。


0

アプリでGoogle Playによるアプリ署名が有効になっている場合は、Google Playバージョンをアンインストールする必要はありません
。次の手順に従ってください。1.リリースキーを使用してアプリの署名済みバージョンを作成する
2. Google Playデベロッパーコンソールに移動する
3。アプリの新しい署名済みバージョンでクローズドトラックリリース(アルファまたはベータリリース)を作成します
。GooglePlay によるアプリ署名によって署名されたapkをダウンロードし、派生APKを選択できますここに画像の説明を入力してください

  1. ダウンロードした派生APKをインストールする

その理由は、Playストアからアプリがインストールされていて、Android Studioから生成された新しいリリースバージョンのアプリをスマートフォンでテストしたい場合、Google Playによるアプリ署名がさまざまなキーでリリースアプリに署名するため、「アプリがインストールされていません」古いバージョンと新しいバージョンが2つの異なるキーで署名されたために発生します。



0

デバイスのデバッグアプリをアンインストールするか、バージョンコードを増やしてこの問題を解決してください


0

私の場合、署名済みAPKのインストールをテストしようとしていましたが、デバイスに現在インストールされているバージョンは署名されていません(Android Studioから直接デバッグバージョンをビルドしています)


0

それは明白ですが、それでも私には理解するのが困難でした、

モバイルデバイスにAPKをインストールするための十分なスペースがあるかどうかを確認してください。そしてそれはいっぱいではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.