アプリをGooglePlayに公開したいのですが、まず、使用したすべてのAPIキーがリリースバージョン(GMaps、Facebookなど)で正しく機能することを確認するために、署名済みapkで最後のテストを行います。
だから私はちょうどリリースキーでアプリの署名付きバージョンを作成し、デバイスにアプリをインストールしようとするとiエラーが発生しました:
Apkをデバイスにコピーして、apkインストーラーアプリでインストールしようとしました。
奇妙なことは、デバッグ署名キーを使用して同じプロセスを実行すると、すべてが順調で、アプリをインストールして実行できることです
手順のステップは次のとおりです:
リリースキーを選択し、パスワードを入力します。
デバッグの代わりにリリースビルドタイプを選択します
念のためiもgradleファイルで署名キーで定義されていますが、必要かどうかはわかりません。
私は今7回7回試してみましたので、この問題はパスワードのタイプミスではなく、だと思いますこれは標準デバッグAndroid署名キーで動作します。
可能であれば助けてください。
Android 5.0以上のデバイスを使用している可能性があります。
設定 - >アプリ - >アプリをクリックしてください。 --->アクションバーメニューのApp infoページに「Uninstall for All users」というオプションがあります。アプリは完全にアンインストールされますので、新しいバージョンを問題なくインストールすることができます。これがお役に立てば幸いです
下のリンクから私の解決策をチェックしてください。
お役に立てば幸いです。
現在のUpdated Android Studio 2.3
ユーザーにとって、Androidスタジオは大きな進歩を遂げているため、今日ではAndroid開発にEclipseを使用する人はほとんどいないので、この答えはあなたのためです。
だから、あなたのSigned apk
ファイルを作成するためにこの方法に従ってください。
Build
> Signed apk
を生成します。Keystore path
を作成してください。Password, alias, key password
を入れてください。Build type
はそれに応じて選択してください(例えばプレイストアでリリースするにはrelease
を使用してください)。Signature Version
は、V1
とV2
の両方のチェックボックスを選択します。Finsih
。Explorer
から移動すると、.apk
で使用しているapp-release.apk
ファイル名が表示されます。Build> Build APKからapkを生成している限り、同じことが起こりました。問題なく何度でもapkをインストールおよびアンインストールできましたが、代わりにBuild> Generate Signed APKを生成した場合、apkを電話機に渡してインストールしようとすると、許可されるのは1つだけでした。次のようなメッセージが出てきました。
それまでは「INSTALL IN ANY WAY」を選択すればすべて問題ありませんでしたが、アプリをアンインストールして再インストールしようとした場合(可能なシナリオ)、次のことが起こりました。
そこで私は(Google Play内で)>メニュー> Play Protect>セキュリティの脅威の検索(無効化)を達成した、Play Protectを無効にすることで問題を解決した。
「アプリがインストールされていません」は、同じパッケージのアプリが同じデバイスに既にインストールされている場合に表示されます。署名したAPKにする前に、あなたがテスト目的に使用していた最初のアプリケーションを削除してください。これはうまくいくでしょう。乾杯!
Signature Version v1とv2の両方を選択すると問題が解決します
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を使用することをお勧めしますが必須ではありません。 詳細をご覧ください
ここで私はこの問題を解決しました
この問題の背後にある理由は、電話に同じパッケージ名を持つアプリケーションが既に存在していますが、電話メニューには見つからないことです(Uはすでにアンインストールされていますが、実際はまだ電話にあります)。
アプリケーションを確認するには、電話にアクセスしてくださいSETTINGS - > APPS。そこにあなたはアプリケーションを見ることができますが、その中のUNINSTALLボタンは無効にされるかもしれません。メニューオーバーフローボタンをクリックしてすべてのユーザーのためにアンインストールを確認します。
すべてのユーザーのアンインストールを実行した後、私は正常に私の署名付きapkをインストールしました。電話からアプリをアンインストールするのにadbを使うこともできます。
adb uninstall package name
これに加えて、あなたの携帯電話が複数のユーザーをサポートしている場合それからそれぞれのアプリが他のユーザーのためにインストールされていないかどうか確認してください。それが他の人のためにインストールされているならば、それから最初に前のアプリをアンインストールして、もう一度やり直してください
あなたは外部SDカードストレージからAPKファイルを実行するためかもしれません。内部storagem問題にAPKファイルをコピーするだけで解決します
Build.Gradle(module:app)に移動してください
これを使用 - minifyEnabled false
minifyEnabled false
すべてのフォーラムで3日間の調査を経て、私にとってうまくいったのはそれだけです!
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
非常に古い質問ですが、私の解決策はversionCode(増加)をbuild.gradleに変更することでした
これは、署名バージョンを選択したために発生する可能性があります。一部の電話機では、シグニチャバージョンがV2として選択されているとインストールエラーが発生します。それでそれが起こるならば、V1を選んでみてください、それはきっとうまくいきます。
[ファイル]> [プロジェクト構造]> [バリアントのビルド]> [リリースの選択]> [署名構成]が空でないことを確認する>ドロップウィンドウから$signingConfigs.release
を選択する場合
これをAndroid Studio 3.1.4で行いました。リリースapkとリリースキーを作成し、アプリグラドルに情報を追加する上記のすべての手順を実行した後、リリースapkを作成できました。乾杯!