web-dev-qa-db-ja.com

Androidでの「アプリがインストールされていません」エラー

Android Emulatorで動作するプログラムがあります。署名された.apkを作成し、それを自分のHTC Desireにエクスポートしてテストしています。それはすべて大丈夫です。

.apkをインストールしようとすると、最新のエクスポートされた.apkに「App not installed」というエラーメッセージが表示されます。それはエミュレータでうまく動きます。

私は主にエミュレータのテストをしていて、ときどき実際の携帯電話にエクスポートしているだけなので、これがいつ起こったのかわかりません。物理的な電話にインストールせずに、エミュレータで問題なく動作している可能性のある原因は何ですか?

私は電話を再起動して既存の.apkを削除しようとしましたが、問題は解決しません。

331
Entropy1024

主に古い電話用

私は4.4.2別名KitKatで実行される私の電話にapkをインストールしようとしたときに私はApp not installedエラーに遭遇しましたが、私の友人は6+で実行される彼の電話でこのエラーに遭遇しませんでした。私は他の解決策を試しました。例えば、apkはリリースバージョンなので、古い/デバッグバージョンのアプリケーションを削除したり、デバッグアプリケーションのデータをクリアしたり、キャッシュされたデータをすべてクリアしたりします。その後、ようやく私は自分の署名付きapkを構築する際に両方の署名バージョンを選択するだけでよいことに気付きました。

enter image description here

V2 (Full APK Signature)を選択しただけでなく、V1 Jar Signatureを選択した後も、署名付きAPKを4.4.2デバイスに正常にインストールできました。これが他の人に役立つことを願っています!

231
Chris Gong

私は同じ問題を抱えていました、そしてそれは私が同じapkの前のバージョンで電話にapkをインストールしようとしていた、そして両方のapkが同じ証明書で署名されていなかったからです。同じ証明書を使用したときに以前のインストールを上書きできたことを意味しますが、バージョン間で証明書を変更したときにはインストールできませんでした。同じ証明書を使用していますか

123
Javi

私にとっては、Android 9(API 28)では、Playストアアプリから Google Play Protect を無効にすることでうまくいき、App not Installedエラーをなくすことができました。

Google Play Protectを無効にする。 "Play Store"アプリケーションを開く=>メニューボタンをタップ=> "Play Protect"オプションを選択=>オプション "セキュリティの脅威をスキャンする"を無効にします。

101
Qasim

明らかにこの問題の多くの原因があります。私にとっては状況はこうでした。私はAndroid Studio(v1.3.2)からnexus 7(実際のデバイス)にデプロイしました。すべてうまくいった。それから私は署名されたapkを作成し、私のGoogleドライブにアップロードしました。 USBから私の関係を切断した後、私は設定/アプリに行き、私のアプリ(App1)をアンインストールしました。それから私はGoogleドライブを開いて私のApp1.apkをクリックしてそれをインストールすることを選んだ(あなたが設定でapksのインストールを許可したことを確認する必要がある)。それから私は「Appがインストールされていません」という恐ろしいメッセージを受け取りました

私のための解決策:settings/appsに戻って、すべてのアプリケーションをスクロールしてスクロールします。 下部の淡いバージョンでした (オリジナルのApp1はアルファベット順で上部に表示されていました) 。薄いバージョンをクリックすると、「このユーザーにはインストールされていません」と表示されます。 (私は私のネクサスを複数のユーザーを持つように設定しました)。しかし、 右上隅には3つのドットのボタン があります。私はこれを押し、それは言った "すべてのユーザーのためのアンインストール" 。私はそれをして問題を解決しました。私は今App1.apkをクリックすることができました、そしてそれはエラーなしでうまくインストールされました。

101
Astra Bear

私は自分のAndroidを2.3.2から3.0.1にアップデートするときに問題に直面しました。この場合、IDEは自動的に以下の点を考慮します。

1.Androidを使用してアプリをインストールすることはできません:AndroidのファイルマネージャやWebサイトからのダウンロードなど、従来の方法ではtestOnly = "true"です。

2.Androidスタジオはから設定されているAPKsにtestOnly = "true"を設定します。

デバイスをシステムに直接接続してアプリを実行しても、apkはインストールされ、問題なく動作します。

このAPKをビルドアウトプットアンドデバッグフォルダからコピーして送信した場合は、デバイスにインストールされることはありません。

解決策 :go ビルド---> APKをビルド ---> apkファイル共有をあなたのチームにコピーする

それからあなたの問題は解決するでしょう。

30
Surya Reddy

私は同じ問題に直面しました。問題は、私のAndroidManifest.xmlファイルの主なアクティビティが2回書かれていたことです。複製を削除しました。

28
christophe

これは、MainActivityがAndroidManifest.xmlで2回宣言されている場合に発生する可能性があります。

考えられるもう1つの理由は、起動アクティビティを変更したことです。ヒント:すでに公開されているアプリケーションでは絶対にしないでください。理由は Android Developersブログで議論されています

20
Sergey Glotov

私は同じ問題を抱えていました。テストのためにもアプリに署名する必要があることに気付きませんでした。

自己署名した後、正常にインストールされました。

17

私はこれが古い投稿であることを知っていますが、新しいユーザーにとっては役に立つかもしれません。私は同じ問題を抱えていた:私のアプリケーションはデバグしている間うまくいった。 APKに署名したときに同じメッセージが表示されました: "アプリケーションがインストールされていません"。

JDKをアンインストールし(私はjdk-6u14-windows-x64を使用していた)、新しいもの(jdk-6u29-windows-x64)をインストールしました。エクスポートしてAPKに再度署名したら、すべて問題ありませんでした。

再開すると、私の問題はJavaバージョンにありました。オラクルさんありがとう!

11

私は同じ問題を抱えていました、そしてそれがどのようにそれが解決されるかです:マニフェストファイルに行き、あなたが "Debuggable"と "Test Only"属性がfalseに設定されていることを確認してください。それは私のために働きました:)

10
Thinkcomplete

私の問題は、デバイスに複数のユーザーアカウントがあることです。私は1アカウントでアプリを削除しましたが、それはまだ他のアカウントにインストールされていました。そのため、名前空間が衝突してインストールされませんでした。すべてのユーザーからアプリをアンインストールすると私のためにそれを修正しました。

8
Rule

Android Studio 3を使用している人のために。

Suryanarayana Reddy's Answerは、それを解決するためのステップを述べていないので、正しいと考えています。

androidManifest.xmlのapplicationタグの下に、testOnly="false"Android:debuggable="true"を次のように追加します。

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:roundIcon="@mipmap/ic_launcher_round"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme"
    Android:testOnly="false"
    Android:debuggable="true"
    >

編集
次にAndroidStudioのメニューバーの[ビルド]> [APKのビルド]

7
Akshay More

アプリケーションがインストールされていない場合は、SDカードからファイル.Android_secure/smdl2tmpl.asecを削除してください。

ファイルマネージャでフォルダ.Android_secureが空の場合は、PCから削除します。

7
Nnamdi

私の問題は、Android StudioのDebugコマンド、Runコマンドを実行したときに生成されたを使用したことです。

解決策:このファイルを使用する代わりにプロジェクトをクリーンアップし、Android Studioからビルド> APKをビルドをクリック _。それからあなたはいつものフォルダーから生成されたAPKを使うことができます(app/build/output/apk/debug /)

このように生成されたファイルは問題なくインストールされました。

6
Adam Kis

私もこの問題を解決しました、

問題は、ロードする最初のアクティビティとしてOnをメインのアクティビティとして2回宣言し、それに対するインテントフィルタも指定したことです。

活動を2回宣言しないようにしてください。

5
Avi Mistriel

あなたがそのアプリケーションのための以前のバージョンを最初にそれを消そうとするなら、今私の問題はその方法によって解決されました。

コマンドラインからキーストアファイルを作成する

keytool -genkey -alias key_file_name.keystore -keyalg RSA -validity 1000000000000000 -keystore key_file_name.keystore

eclipseでapkをエクスポートし、Androidプロジェクト Android Tools>署名付きアプリケーションパッケージのエクスポート を右クリックして、キーストアの場所とパスワードを入力します。

これは署名されたapkをクレートし、同時にapkはzipalignedになります。そして設置可能。

あなたがすべてのためにコマンドラインを通過する場合、時々あなたは「アプリケーションがインストールされていない」エラーに直面するかもしれません。 (アプリケーションがインストールされていないというエラーは、コマンドラインを使用しているときだけでなく、他の理由でも発生します)

結局、私は自分のアプリだけでなく、アプリが正常にインストールされていないことを知りました。 Install AppのデフォルトをSDカードから自動に設定しました。それはそれを修正しました。

4
Entropy1024

私は同じ問題を抱えていた、すなわちアプリがインストールされているように見えたが、アイコンがタップされたときに起動されませんでした。ちょっと叩いた後、私は愚かに私がAndroidManifestファイル内の私の主なランチャーアクティビティのために 'Android:export = "false"'を置いていたことに気付きました。

4

私の問題は@Lunatikzxの問題に似ていました。アプリケーションの属性として記述された許可タグが間違っているため。

<application
    Android:permission="Android.permission.WRITE_EXTERNAL_STORAGE"
    Android:label="@string/app_name"
    Android:icon="@drawable/ic_launcher"
    Android:testOnly="false"
    Android:debuggable="true">

これを修正したのは、許可タグをこのように別のタグに変更することでした。

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
4
SMGhost

アプリをインストールしようとしたときにあなたのlogCatを開きます。 「フィルタなし」に設定してください。 「InstallAppProgress」パッケージIDを検索してください。インストールに失敗した場合は、「インストールエラーコード」が表示されます。私の場合は

D/InstallAppProgress: Installation error code: -7

ここから、この link を使用して特定のエラーコードに関する情報を見つけることができます。

3
sirFunkenstine

私もこの問題に遭遇しました。親切にこの解決策を試してください。プロジェクトのパッケージ名が、携帯電話に既にインストールされている以前のプロジェクトと異なることを確認してください。彼らは彼らの名前に矛盾があると思います。それは私の中で働きます。

3
joepadz

Androidのバージョンを確認してください。

あなたが市場ではないアプリをインストールしていて、互換性のないバージョンであれば、このエラーが発生します。

例:2.3.4をターゲットとしたアプリケーションお使いのデバイスは2.2です。このエラーが発生します。

3
Noby

また、Play Store、YouTube、Google MapsなどのGoogleの商用アプリのライセンスをデバイスの製造元が取得していないために、この問題が発生することもあります。 この回答 .

3
Bobs

「アプリケーションがインストールされていません」というエラーは、アプリがSDカードにインストールまたは移動されてからUSBケーブルが接続され、SDカードがマウント解除された場合にも発生する可能性があります。

この場合、USBストレージをオフにするか、アプリを内部ストレージに戻すと問題が解決します。

3

どうやらこれはまたインストールする前にAPKの名前を変更することによっても引き起こされる可能性があります。ファイル名を短くすることで、ユーザーが私たちのWebサイトからアプリを入手するのに必要なタイピングの量を減らしたいと思いました。その後、彼らはそれをインストールすることができませんでした。

パッケージを作成して署名するときに使用した元のファイル名に戻すと、インストールしたアプリを更新できました。

2
Michael Todd

私のための原因は私が同じ電話で異なるビルドの変形を使用して複数のビルドを持っていたということでした:

enter image description here

起こったのは、これらのビルドのいくつかが me によってビルドされ、他のビルドが他の開発者によって私に送られたことを意味します。

だから修正は簡単でした:削除 すべて 私の携帯電話上のビルド(ビルドのバリエーションに関係なく)..それから私のピアによって送信されたAPKをインストールします..そしてそれは魅力のように働いた

2
abbood

所有者とゲストユーザーのマシュマロでそこにあります。ゲストが同じアプリをインストールした場合、私たちは所有者に同じアプリをインストールすることはできません。

2
Ramesh sambu

私の場合は、Android Studio 3.0がrelease Build VariantからビルドされるAPKにAndroid:testOnly="true"を設定するためです。

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

./gradlew assembleReleaseを実行して問題を解決してください

2
heavyauto

Android Studioを使用して、私は以前に署名されていないデバッグバージョンのAPKをインストールし( Build> Build APK )、署名されたリリースバージョンをインストールする前にアンインストールしました( Build Variants> Build Variant:release ビルド>署名付きAPKの生成 )。

2
mrts

私の場合は、サポートライブラリ28のアルファ版を使用していたためです。Googleがこれらのプレリリース版をtestOnlyとしてマークしているようです。本当にこのようにリリースしたいのなら(例えば、私がやったように内部ベータ版をプッシュしたいのなら)、あなたはgradle.propertiesファイルにこの行を追加することができます:

Android.injected.testOnly=false
1

Googleドライブから直接apkをインストールしようとしている場合は、デバイスを再起動するだけで問題が解決しました。

1
Onur D.

これはホームスクリーンウィジェットを作成するときにも発生する可能性があり、ウィジェットXMLファイルのAndroid:configureプロパティに誤ったActivityが指定されています。

1
TalkLittle

この問題が私に起こったとき、私はキーストアのように私のプロジェクトフォルダにあったいくつかの重要でないファイルを削除することによってそれを修正しました。

後から考えると、人々にあなたのゲームへの鍵を与えることはおそらく悪いでしょう。

1
Houseman

私はこれが私のAndroidマニフェストXMLファイルのこの行によって注意されていたのと同じタイプのエラーを持っていました。

Android:permission="Android.permission.INSTALL_LOCATION_PROVIDER"

私は回線を削除し、それが私の問題を解決しました。お役に立てれば

1
Lunatikzx

私の場合、以前にリリースされたアプリは別のキーで署名されていたため、アンインストールしましたが、テスト用の電話(LG G4 H-818)では2ユーザーが存在しますなので以前のアプリまだインストール済み携帯電話でアンインストールしなかった適切!そのため、もう一度インストールしようとすると失敗しました...

そこで、私はユーザーの変更を試み、以前のアプリをアンインストールし、最後にアプリを適切にインストールしました。

それが将来あなたに役立つことを願って:)

1
MilaDroid

私はこの問題にさまざまな形で遭遇しました、しかし今回はそれが新しいものでした:

この場合、私はプロバイダ名の衝突がありました - 同じプロバイダ名が私のアプリと私の他のアプリに存在していました。

0
Gal Rom

私はプレイストアへの私の最新のアプリリリースでこの問題に直面しました。問題はMainLauncherの変更とアプリのショートカットの組み合わせです。

スプラッシュスクリーンを追加しました。エントリポイントはSplashActivityではなくMainActivityです。そのため、以前のバージョンがあり、ホーム画面にアプリのショートカットがある人はアプリを開くことができません。それはいつもApp not installedトーストのようなものを言います。これはすべてのランチャーで起こるわけではありません(私たちにとってはSamsungsでより一般的です)。

舞台裏では、App shortcutはエントリポイントをMainActivityからSplashActivityにシームレスに更新する必要があります。しかし、どういうわけか多くのサードパーティ製のランチャーはそれに従わない。解決策はショートカットをクリアしてもう一度追加することです。

まだプレイストアでアプリを更新していない場合は、 この記事 に進んでください。

ランチャーアクティビティを更新するときは注意してください。

0
sha

これらのヒントを考慮したことを確認してください。

  1. あなたのbuild variantsFlavorsは同じ(アプリがインストールされたものと新しいもの)であるべきです、通常はリリース
  2. Signatureファイルは同じでなければなりません(*。jksファイル)
  3. build.gradleまたはAndroidManifestに設定したバージョンは、現在のバージョンと比較して大きな値を持ちます(バージョンをbuild.gradleに設定することをお勧めします)。
  4. URLは正しい(タイプミスはありません)そしてサーバーは到達可能です(WebService/WebMethod/WIFIは実行中/利用可能で...)
  5. ファイルが完全にダウンロードされました
  6. ファイルは目的のディレクトリに正しく保存されました
  7. setDataAndTypeのデータと型の設定は正しい
0
Mehran Zamani
  1. プロジェクトを閉じます。
  2. プロジェクト内の.ideaフォルダを削除します。
  3. このプロジェクトをAndroidスタジオで開きます。
  4. あなたの携帯電話を接続してそれを構築してください。
  5. これでアプリは正常にインストールされました。
0
jakir hussain

インストールする必要があるデバイスに十分なスペースがなく、システムがユーザーに警告しないため、この問題に直面しているため、ストレージが利用できないことも言及する必要があります。あなたはデバッグのために見つけることができます

0
Anonymous-E

IOS用の証明書でADTを使用するという私のカスタムビルドツールにバグがあったとき、私はこれに遭遇しました。あなただけが持っているべきです、彼らはちょうどRSA-1024証明書です、自己署名でさえ大丈夫です、少なくとも市場ではないインストールのために)。

0
Simon Buchan

私は2つの異なる証明書でアプリに署名したので、古い証明書で古いバージョンを削除してから新しいものを再インストールすると問題が解決しました

0
leandroid

インストールするデバイスに十分なストレージがないときに、この「アプリがインストールされていません」というエラーが発生しました。いくつかのファイルを削除すると、アプリのインストールが許可されました。代わりに「スペースが足りません」というメッセージが表示されなかったのは奇妙です。 (注:「不明」な場所からapkを手動でインストールしていました。)

0
Adjwilley

私の場合、削除しました役に立たない不要な権限

必要なのは1許可

<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />

不要で、このエラーが発生し始めた不要なアクセス許可を削除します

<uses-permission Android:name="Android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission Android:name="Android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission Android:name="Android.permission.CONTROL_LOCATION_UPDATES" />
0
vijay

誰かがこの問題を抱えている場合は、ビルド番号を確認してください。ビルド番号がインストールされているアプリのビルド番号よりも小さい場合、アプリはインストールされず、「破損したアプリまたはapkファイル」が表示されます。

修正するには、インストールされているビルド番号と同じかそれ以上になるまでビルド番号を増やしてください。

0
ikkarion

AndroidManifest.xml :でこの変更を試してください。

  • debuggableをtrueに設定する
  • apkに署名する
0
cyber cyber1621

androidMainfestを開いて、アプリケーションタグにverionCode、versionNameを追加し、debug ableがfalseと等しいことを確認します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
package="...">

<application
    ...
    Android:debuggable="false"
    Android:versionCode="1"
    Android:versionName="1.0"
    tools:ignore="HardcodedDebugMode">
    ...
</application>

次にbuild.gradle(module:app)を開き、verionCode、versionNameが終了し、minsdk <=あなたの携帯電話のsdkを確認します。

defaultConfig {
    ...
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
   ...
}

ソースを見てください: https://developer.Android.com/studio/publish/

https://developer.Android.com/studio/publish/preparing

https://developer.Android.com/studio/publish/versioning

および https://developer.Android.com/studio/publish/app-signing

  1. アプリモジュール(プロジェクトメインモジュール)のbuild> output> apkフォルダから.apkファイルを削除します。
  2. プロジェクトのルートから.ideaおよび.gradleフォルダを削除します。
  3. プロジェクトをきれいにする。
  4. android Studioのサイドバーから[Gradle]アイコンをクリックし、[sync]アイコンをクリックしてすべてのプロジェクトを更新します。今すぐプロジェクトを実行し、それが動作するはずです。
0
44kksharma

Mavenではなく、最初にアプリに署名しないことでこれを修正しました。これをビルドパスに追加しました。

    <plugin>
        <groupId>com.jayway.maven.plugins.Android.generation2</groupId>
        <artifactId>Android-maven-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
            <sign>
                <debug>false</debug>
            </sign>
        </configuration>
    </plugin>

その後、私は自分のアプリに手で署名しました。

0
Bevor

私も同じ問題に直面しました。私のアプリケーションではそれにサービスがありました。アプリケーションが強制的に停止された後、アプリケーションがアンインストールされた後もサービスがバックグラウンドで実行されていたため、アプリケーションがアンインストールされたことを示すメッセージが表示されました。それから私は何の問題もなくアプリケーションをインストールしました。

0

上記のすべての答えを試したが、どれもうまくいかなかった場合は、次の方法を試してください。

ビルドバリアントが 'debug'の場合は、アプリをデバイスにインストールするために、アプリビルドグレードのbuildTypesの下にこれを追加する必要があります。

debug {
    minifyEnabled false
}
0
Ali Nem