16

を使用しcom.android.vending.licensingて、アプリがライセンスされているかどうかを確認できます。applicationError()何か問題が発生したかどうかを通知するコールバックがあります。今日、私はエラーに遭遇しましたERROR_NOT_MARKET_MANAGED、そして私はそれをどのように扱うべきか理解できません!

これが私がしたことです:

  1. Google Playで、自分のメールアドレスをテストアカウントとして追加しました。
  2. Google Playで、アプリ(未公開)を。で保存しましversionCode="10"た。
  3. 私のマシンでは、に変更しましたversionCode="11"
  4. ライセンスチェックがエラーコードで失敗するようになりましERROR_NOT_MARKET_MANAGEDた。

質問は; このエラーを処理する必要がありますか、それともこれは非現実的なシナリオですか?

4

5 に答える 5

31

ERROR_NOT_MARKET_MANAGED:名前は本当にそれ自体を物語っています。アプリケーションはAndroidマーケット(現在はGoogle Playと呼ばれています)によって管理されていません。具体的には、アプリケーションのバージョン11はGooglePlayにアップロードまたは公開されていません。

このエラーを処理する必要がありますか、それともこれは非現実的なシナリオですか?

これは非現実的なシナリオだと思います。Google Playに新しいアプリのバージョンをアップロードする限り、コードで特別なことをする必要はありません。ERROR_NOT_MARKET_MANAGEDは、開発者がライセンスチェックコードを適切に実装し、プロジェクトのビルド時にライセンスチェックをテストするための正しい手順に従うのに役立つLVL開発警告に似ています。LVLサンプルコードのコメントを確認してください。

private class MyLicenseCheckerCallback implements LicenseCheckerCallback {

    ... ...

    public void applicationError(ApplicationErrorCode errorCode) {
        if (isFinishing()) {
            // Don't update UI if Activity is finishing.
            return;
        }
        // This is a polite way of saying the developer made a mistake
        // while setting up or calling the license checker library.
        // Please examine the error code and fix the error.
        //String result = String.format(getString(R.string.application_error), errorCode);
        //String result = "Error";
        //handleLicensingResult(result);
    }
}

LVLをアプリケーションに統合することの全体的なポイントは、Google Playを使用してアプリケーションを公開し、Google Playクライアントアプリケーションを使用してアプリケーションをダウンロードしてインストールすることです(開発ガイドの「要件と制限」セクションを参照)。次の場合、エンドユーザーのデバイスで実行時にこのapplicationErrorを引き起こす可能性のあるポイントを確認できません。

  1. 開発者は、正しい手順に従って、Google Playでアップロード(LVLのテスト用)または公開(実際のリリース用)します。
  2. エンドユーザーは、Google Playクライアントアプリケーションを使用して、アプリケーションを購入、ダウンロード、インストールします。

エンドユーザーが何らかの方法でアプリケーションのコピー(LVLが統合されてGoogle Playにアップロード/公開されている)を他のチャネル(Google Play経由で購入していない)から取得し、デバイスにインストールしようとした場合(Google Playクライアントアプリケーションがインストールされている場合)デバイス)、この場合、LicenseCheckerCallbackはapplicationError(ApplicationErrorCode errorCode)ではなくdontAllow()に移動します。

于 2012-04-30T01:49:33.470 に答える
13

GooglePlayにアップロードした直後にアプリケーションをテストしないでください。

テストを開始する前に、しばらく(15〜20分またはおそらくそれ以上)待ちます。GooglePlayはアプリを認識するのに少し時間がかかります。

于 2012-10-22T18:52:48.973 に答える
2

7月29日、アプリがアルファテストまたはベータテストを行っているときに、エラー3またはError_Not_Market_Managedしか取得できないことがわかりました。これは実際にはサーバーからの応答です。つまり、サーバーにアクセスしていて、コードが適切であることを意味します。開発者コンソールで応答として設定されているものに関係なく、これが私が受け取る唯一の応答です。

私は実際に3日間待っていましたが、変化はありません。したがって、許容できる待機時間はありません。電話全体をクリアしてリセットすることもできました。GooglePlayのキャッシュと他のすべての魔法のトリックをクリアしました。それらのどれも理由ではありませんでした。

すでに公開されているアプリの1つを新しいGoogleライセンスコードで更新したところ、まったく同じ応答が返されました。バージョンコードを変更してアップロードして公開した後、約4時間後、そのアプリは正常に機能し、Googleライセンスチェックは有効なコードで応答しました。これで、完全に公開されている限り、私が指示したコードで応答します。

つまり、答えは、完全に公開されるまでGoogleライセンスは正しく機能しないということです。アプリがアルファ版またはベータ版であり、エラー3が発生している場合は、問題がない可能性があります。公開する準備ができるまで、ライセンスチェック方法をコメントアウトするだけです。

于 2014-07-29T08:15:01.420 に答える
1

今のところ、2014年5月に、アップロードされたAPKと拡張OBBをベータ版でテストするために、テストアプリ(本番APKはアップロードされていません)を公開する必要があります。そうでなければ、私はいつもERROR_NOT_MARKET_MANAGEDテストするときに得ましたAPKExpansionPolicy。そして、公開から2時間後(ウェブページの通知には「最大24時間」と書かれていました)、拡張ファイルの情報を取得できます。

テスター以外の誰もが公開されたアプリAFAIKを見ることができません。

于 2014-05-16T03:07:06.667 に答える
0

古いデバイスでも発生する可能性があります。実際のバージョンを公開せずにアプリをテストしていて、Galaxy S8で正常に動作しますが、GalaxyS4でこのメッセージが表示されます。これは、これもGoogleの間違いである可能性があると言う丁寧な言い方でもあることを意味します。

于 2017-09-06T00:44:03.503 に答える