Android Emulatorで動作するプログラムがあります。署名された.apkを作成し、それを自分のHTC Desireにエクスポートしてテストしています。それはすべて大丈夫です。
.apkをインストールしようとすると、最新のエクスポートされた.apkに「App not installed」というエラーメッセージが表示されます。それはエミュレータでうまく動きます。
私は主にエミュレータのテストをしていて、ときどき実際の携帯電話にエクスポートしているだけなので、これがいつ起こったのかわかりません。物理的な電話にインストールせずに、エミュレータで問題なく動作している可能性のある原因は何ですか?
私は電話を再起動して既存の.apkを削除しようとしましたが、問題は解決しません。
私は4.4.2別名KitKatで実行される私の電話にapkをインストールしようとしたときに私はApp not installed
エラーに遭遇しましたが、私の友人は6+で実行される彼の電話でこのエラーに遭遇しませんでした。私は他の解決策を試しました。例えば、apkはリリースバージョンなので、古い/デバッグバージョンのアプリケーションを削除したり、デバッグアプリケーションのデータをクリアしたり、キャッシュされたデータをすべてクリアしたりします。その後、ようやく私は自分の署名付きapkを構築する際に両方の署名バージョンを選択するだけでよいことに気付きました。
V2 (Full APK Signature)
を選択しただけでなく、V1 Jar Signature
を選択した後も、署名付きAPKを4.4.2デバイスに正常にインストールできました。これが他の人に役立つことを願っています!
私は同じ問題を抱えていました、そしてそれは私が同じapkの前のバージョンで電話にapkをインストールしようとしていた、そして両方のapkが同じ証明書で署名されていなかったからです。同じ証明書を使用したときに以前のインストールを上書きできたことを意味しますが、バージョン間で証明書を変更したときにはインストールできませんでした。同じ証明書を使用していますか
私にとっては、Android 9(API 28)では、Playストアアプリから Google Play Protect を無効にすることでうまくいき、App not Installed
エラーをなくすことができました。
Google Play Protectを無効にする。 "Play Store"アプリケーションを開く=>メニューボタンをタップ=> "Play Protect"オプションを選択=>オプション "セキュリティの脅威をスキャンする"を無効にします。
明らかにこの問題の多くの原因があります。私にとっては状況はこうでした。私はAndroid Studio(v1.3.2)からnexus 7(実際のデバイス)にデプロイしました。すべてうまくいった。それから私は署名されたapkを作成し、私のGoogleドライブにアップロードしました。 USBから私の関係を切断した後、私は設定/アプリに行き、私のアプリ(App1)をアンインストールしました。それから私はGoogleドライブを開いて私のApp1.apkをクリックしてそれをインストールすることを選んだ(あなたが設定でapksのインストールを許可したことを確認する必要がある)。それから私は「Appがインストールされていません」という恐ろしいメッセージを受け取りました
私のための解決策:settings/appsに戻って、すべてのアプリケーションをスクロールしてスクロールします。 下部の淡いバージョンでした (オリジナルのApp1はアルファベット順で上部に表示されていました) 。薄いバージョンをクリックすると、「このユーザーにはインストールされていません」と表示されます。 (私は私のネクサスを複数のユーザーを持つように設定しました)。しかし、 右上隅には3つのドットのボタン があります。私はこれを押し、それは言った "すべてのユーザーのためのアンインストール" 。私はそれをして問題を解決しました。私は今App1.apkをクリックすることができました、そしてそれはエラーなしでうまくインストールされました。
私は自分のAndroidを2.3.2から3.0.1にアップデートするときに問題に直面しました。この場合、IDEは自動的に以下の点を考慮します。
1.Androidを使用してアプリをインストールすることはできません:AndroidのファイルマネージャやWebサイトからのダウンロードなど、従来の方法ではtestOnly = "true"です。
2.Androidスタジオはから設定されているAPKsにtestOnly = "true"を設定します。
デバイスをシステムに直接接続してアプリを実行しても、apkはインストールされ、問題なく動作します。
このAPKをビルドアウトプットアンドデバッグフォルダからコピーして送信した場合は、デバイスにインストールされることはありません。
解決策 :go ビルド---> APKをビルド ---> apkファイル共有をあなたのチームにコピーする
それからあなたの問題は解決するでしょう。
私は同じ問題に直面しました。問題は、私のAndroidManifest.xmlファイルの主なアクティビティが2回書かれていたことです。複製を削除しました。
これは、MainActivityがAndroidManifest.xmlで2回宣言されている場合に発生する可能性があります。
考えられるもう1つの理由は、起動アクティビティを変更したことです。ヒント:すでに公開されているアプリケーションでは絶対にしないでください。理由は Android Developersブログで議論されています 。
私は同じ問題を抱えていました。テストのためにもアプリに署名する必要があることに気付きませんでした。
自己署名した後、正常にインストールされました。
私はこれが古い投稿であることを知っていますが、新しいユーザーにとっては役に立つかもしれません。私は同じ問題を抱えていた:私のアプリケーションはデバグしている間うまくいった。 APKに署名したときに同じメッセージが表示されました: "アプリケーションがインストールされていません"。
JDKをアンインストールし(私はjdk-6u14-windows-x64を使用していた)、新しいもの(jdk-6u29-windows-x64)をインストールしました。エクスポートしてAPKに再度署名したら、すべて問題ありませんでした。
再開すると、私の問題はJavaバージョンにありました。オラクルさんありがとう!
私は同じ問題を抱えていました、そしてそれがどのようにそれが解決されるかです:マニフェストファイルに行き、あなたが "Debuggable"と "Test Only"属性がfalseに設定されていることを確認してください。それは私のために働きました:)
私の問題は、デバイスに複数のユーザーアカウントがあることです。私は1アカウントでアプリを削除しましたが、それはまだ他のアカウントにインストールされていました。そのため、名前空間が衝突してインストールされませんでした。すべてのユーザーからアプリをアンインストールすると私のためにそれを修正しました。
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のビルド]
アプリケーションがインストールされていない場合は、SDカードからファイル.Android_secure/smdl2tmpl.asec
を削除してください。
ファイルマネージャでフォルダ.Android_secure
が空の場合は、PCから削除します。
私の問題は、Android StudioのDebugコマンド、Runコマンドを実行したときに生成されたを使用したことです。
解決策:このファイルを使用する代わりにプロジェクトをクリーンアップし、Android Studioからビルド> APKをビルドをクリック _。それからあなたはいつものフォルダーから生成されたAPKを使うことができます(app/build/output/apk/debug /)
このように生成されたファイルは問題なくインストールされました。
私もこの問題を解決しました、
問題は、ロードする最初のアクティビティとしてOnをメインのアクティビティとして2回宣言し、それに対するインテントフィルタも指定したことです。
活動を2回宣言しないようにしてください。
あなたがそのアプリケーションのための以前のバージョンを最初にそれを消そうとするなら、今私の問題はその方法によって解決されました。
コマンドラインからキーストアファイルを作成する
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カードから自動に設定しました。それはそれを修正しました。
私は同じ問題を抱えていた、すなわちアプリがインストールされているように見えたが、アイコンがタップされたときに起動されませんでした。ちょっと叩いた後、私は愚かに私がAndroidManifestファイル内の私の主なランチャーアクティビティのために 'Android:export = "false"'を置いていたことに気付きました。
私の問題は@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" />
アプリをインストールしようとしたときにあなたのlogCatを開きます。 「フィルタなし」に設定してください。 「InstallAppProgress」パッケージIDを検索してください。インストールに失敗した場合は、「インストールエラーコード」が表示されます。私の場合は
D/InstallAppProgress: Installation error code: -7
ここから、この link を使用して特定のエラーコードに関する情報を見つけることができます。
私もこの問題に遭遇しました。親切にこの解決策を試してください。プロジェクトのパッケージ名が、携帯電話に既にインストールされている以前のプロジェクトと異なることを確認してください。彼らは彼らの名前に矛盾があると思います。それは私の中で働きます。
Androidのバージョンを確認してください。
あなたが市場ではないアプリをインストールしていて、互換性のないバージョンであれば、このエラーが発生します。
例:2.3.4をターゲットとしたアプリケーションお使いのデバイスは2.2です。このエラーが発生します。
また、Play Store、YouTube、Google MapsなどのGoogleの商用アプリのライセンスをデバイスの製造元が取得していないために、この問題が発生することもあります。 この回答 .
「アプリケーションがインストールされていません」というエラーは、アプリがSDカードにインストールまたは移動されてからUSBケーブルが接続され、SDカードがマウント解除された場合にも発生する可能性があります。
この場合、USBストレージをオフにするか、アプリを内部ストレージに戻すと問題が解決します。
どうやらこれはまたインストールする前にAPKの名前を変更することによっても引き起こされる可能性があります。ファイル名を短くすることで、ユーザーが私たちのWebサイトからアプリを入手するのに必要なタイピングの量を減らしたいと思いました。その後、彼らはそれをインストールすることができませんでした。
パッケージを作成して署名するときに使用した元のファイル名に戻すと、インストールしたアプリを更新できました。
所有者とゲストユーザーのマシュマロでそこにあります。ゲストが同じアプリをインストールした場合、私たちは所有者に同じアプリをインストールすることはできません。
私の場合は、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
を実行して問題を解決してください
Android Studioを使用して、私は以前に署名されていないデバッグバージョンのAPKをインストールし( Build> Build APK )、署名されたリリースバージョンをインストールする前にアンインストールしました( Build Variants> Build Variant:release 、 ビルド>署名付きAPKの生成 )。
私の場合は、サポートライブラリ28のアルファ版を使用していたためです。Googleがこれらのプレリリース版をtestOnlyとしてマークしているようです。本当にこのようにリリースしたいのなら(例えば、私がやったように内部ベータ版をプッシュしたいのなら)、あなたはgradle.propertiesファイルにこの行を追加することができます:
Android.injected.testOnly=false
Googleドライブから直接apkをインストールしようとしている場合は、デバイスを再起動するだけで問題が解決しました。
これはホームスクリーンウィジェットを作成するときにも発生する可能性があり、ウィジェットXMLファイルのAndroid:configure
プロパティに誤ったActivityが指定されています。
この問題が私に起こったとき、私はキーストアのように私のプロジェクトフォルダにあったいくつかの重要でないファイルを削除することによってそれを修正しました。
後から考えると、人々にあなたのゲームへの鍵を与えることはおそらく悪いでしょう。
私はこれが私のAndroidマニフェストXMLファイルのこの行によって注意されていたのと同じタイプのエラーを持っていました。
Android:permission="Android.permission.INSTALL_LOCATION_PROVIDER"
私は回線を削除し、それが私の問題を解決しました。お役に立てれば
私の場合、以前にリリースされたアプリは別のキーで署名されていたため、アンインストールしましたが、テスト用の電話(LG G4 H-818)では2ユーザーが存在しますなので以前のアプリまだインストール済み携帯電話でアンインストールしなかった適切!そのため、もう一度インストールしようとすると失敗しました...
そこで、私はユーザーの変更を試み、以前のアプリをアンインストールし、最後にアプリを適切にインストールしました。
それが将来あなたに役立つことを願って:)
私はこの問題にさまざまな形で遭遇しました、しかし今回はそれが新しいものでした:
この場合、私はプロバイダ名の衝突がありました - 同じプロバイダ名が私のアプリと私の他のアプリに存在していました。
私はプレイストアへの私の最新のアプリリリースでこの問題に直面しました。問題はMainLauncher
の変更とアプリのショートカットの組み合わせです。
スプラッシュスクリーンを追加しました。エントリポイントはSplashActivity
ではなくMainActivity
です。そのため、以前のバージョンがあり、ホーム画面にアプリのショートカットがある人はアプリを開くことができません。それはいつもApp not installed
トーストのようなものを言います。これはすべてのランチャーで起こるわけではありません(私たちにとってはSamsungsでより一般的です)。
舞台裏では、App shortcut
はエントリポイントをMainActivity
からSplashActivity
にシームレスに更新する必要があります。しかし、どういうわけか多くのサードパーティ製のランチャーはそれに従わない。解決策はショートカットをクリアしてもう一度追加することです。
まだプレイストアでアプリを更新していない場合は、 この記事 に進んでください。
ランチャーアクティビティを更新するときは注意してください。
これらのヒントを考慮したことを確認してください。
build variants
とFlavors
は同じ(アプリがインストールされたものと新しいもの)であるべきです、通常はリリースSignature
ファイルは同じでなければなりません(*。jksファイル)build.gradle
またはAndroidManifest
に設定したバージョンは、現在のバージョンと比較して大きな値を持ちます(バージョンをbuild.gradle
に設定することをお勧めします)。setDataAndType
のデータと型の設定は正しいインストールする必要があるデバイスに十分なスペースがなく、システムがユーザーに警告しないため、この問題に直面しているため、ストレージが利用できないことも言及する必要があります。あなたはデバッグのために見つけることができます
IOS用の証明書でADTを使用するという私のカスタムビルドツールにバグがあったとき、私はこれに遭遇しました。あなただけが持っているべきです、彼らはちょうどRSA-1024証明書です、自己署名でさえ大丈夫です、少なくとも市場ではないインストールのために)。
私は2つの異なる証明書でアプリに署名したので、古い証明書で古いバージョンを削除してから新しいものを再インストールすると問題が解決しました
インストールするデバイスに十分なストレージがないときに、この「アプリがインストールされていません」というエラーが発生しました。いくつかのファイルを削除すると、アプリのインストールが許可されました。代わりに「スペースが足りません」というメッセージが表示されなかったのは奇妙です。 (注:「不明」な場所からapkを手動でインストールしていました。)
私の場合、削除しました役に立たない不要な権限
必要なのは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" />
誰かがこの問題を抱えている場合は、ビルド番号を確認してください。ビルド番号がインストールされているアプリのビルド番号よりも小さい場合、アプリはインストールされず、「破損したアプリまたはapkファイル」が表示されます。
修正するには、インストールされているビルド番号と同じかそれ以上になるまでビルド番号を増やしてください。
AndroidManifest.xml :でこの変更を試してください。
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
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>
その後、私は自分のアプリに手で署名しました。
私も同じ問題に直面しました。私のアプリケーションではそれにサービスがありました。アプリケーションが強制的に停止された後、アプリケーションがアンインストールされた後もサービスがバックグラウンドで実行されていたため、アプリケーションがアンインストールされたことを示すメッセージが表示されました。それから私は何の問題もなくアプリケーションをインストールしました。
上記のすべての答えを試したが、どれもうまくいかなかった場合は、次の方法を試してください。
ビルドバリアントが 'debug
'の場合は、アプリをデバイスにインストールするために、アプリビルドグレードのbuildTypes
の下にこれを追加する必要があります。
debug {
minifyEnabled false
}