Android 许可错误 561 - 此应用程序未获得许可。请从 Android Market 购买

标签 android eclipse android-lvl

我不知道我是否在正确实现 LVL。
请指导我解决这个问题。

我遵循了一些答案,例如清除缓存、卸载和重新安装。
仍然没有运气..

在上传到 alpha 测试之前,我尝试了以下步骤。

  1. 我正在使用 Eclipse。我使用导出签名的应用程序包选项创建了一个 keystore
  2. 已从 keystore 上传 APK。

以下是我的代码,我从 How to license my Android application? 中获取的

public class Activity_LicenseCheck extends Activity {
    private class MyLicenseCheckerCallback implements LicenseCheckerCallback{
    @Override
    public void allow(int reason) {
          toast("Inside-Allow:" + reason);
         if (isFinishing()) {
             // Don't update UI if Activity is finishing.
             return;
            }
         startMainActivity();

    }

    @Override
    public void dontAllow(int reason) {

          toast("dontAllow: " + reason);
        if (isFinishing()) {
                // Don't update UI if Activity is finishing.
                return;
            }


    }

    @Override
    public void applicationError(int errorCode) {
         if (isFinishing()) {
                return;
            }

            toast("Errorffff: " + errorCode);
            startMainActivity();

    }

    }
    private static final String BASE64_PUBLIC_KEY = "mykey";
    private static final byte[] SALT = new byte[] {11,34,56,36,3,45,-87,2,67,-98,32,-14,44,-58,39,-26,72,-19,86,23};
    private LicenseChecker mChecker;

    // A handler on the UI thread.

    private LicenseCheckerCallback mLicenseCheckerCallback;
    private void doCheck() {
            mChecker.checkAccess(mLicenseCheckerCallback);
    }

    @Override
        public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Try to use more data here. ANDROID_ID is a single point of attack.
    String deviceId = Secure.getString(getContentResolver(),
            Secure.ANDROID_ID);

    // Library calls this when it's done.
    mLicenseCheckerCallback = new MyLicenseCheckerCallback();
    // Construct the LicenseChecker with a policy.
    mChecker = new LicenseChecker(this, new ServerManagedPolicy(this,
            new AESObfuscator(SALT, getPackageName(), deviceId)),
            BASE64_PUBLIC_KEY);
            doCheck();
        }

    @Override
        protected Dialog onCreateDialog(int id) {
    // We have only one dialog.
    return new AlertDialog.Builder(this)
            .setTitle("Application Not Licensed")
            .setCancelable(false)
            .setMessage(
                    "This application is not licensed. Please purchase it from Android Market")
            .setPositiveButton("Buy App",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            Intent marketIntent = new Intent(
                                    Intent.ACTION_VIEW,
                                    Uri.parse("http://market.android.com/details?id="
                                            + getPackageName()));
                            startActivity(marketIntent);
                            finish();
                        }
                    })
            .setNegativeButton("Exit",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog,
                                int which) {
                            finish();
                        }
                    }).create();
        }
        @Override
        protected void onDestroy() {
    super.onDestroy();
    mChecker.onDestroy();
        }

      private void startMainActivity() {
        startActivity(new Intent(this, Activity_login.class));  
        finish();
        }

        public void toast(String string) {
    Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
        }
}

最佳答案

终于解决了,问题是 BASE64 PUBLIC KEY 的输入错误。我完全不知道谷歌应该提出简单解决方案的许可概念。

它是如何为我工作的.. 我的第一次发布是 1.0 版,我收到错误 561。(未获得许可) isuue 是错误的 BASE64 PUBLIC KEY 条目然后我用正确的条目替换它并在 Androidmanifest.xml 中将应用程序版本更改为 2.0 并重新生成 keystore 最后将 apk 上传到开发人员控制台并禁用版本 1 并在控制台中发布版本 2。当从控制台下载新的 apk 仍然面临问题时,应用程序抛出“从服务器 [RPC:S-7:AEC-0] 检索信息时出错”错误。我在谷歌上搜索并找到了解决方案,重新启动了设备,它成功了

关于Android 许可错误 561 - 此应用程序未获得许可。请从 Android Market 购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29951297/

相关文章:

android - 找不到错误 :resource style/TextAppearance. Compat.Notification.Info(又名 {packageId}.test :style/TextAppearance. Compat.Notification.Info)

android - 我如何在 Android 中使用 OpenLayers

eclipse - Tycho 功能/插件构建包含特定于平台的片段插件

eclipse - 来自 svn : GroovyObject cannot be resolved 的 grails 项目错误

java - Android Market Licensing (LVL) 始终返回 RETRY

java - 如何以编程方式查找 Activity 的 list 选项?

java - 如何从两个数组列表中删除不常见的元素

java - 从终端将项目添加到 java 构建路径

android - 如何确定获取 Google 用户 ID(不是设备 ID)?

java - 在 SDK 管理器中找不到 Google 市场许可包