应用程序未配置为通过 Google Play 计费

2024-01-03

我正在开发一个 android 项目,我正在尝试实现 In App Billing V3。

我已将我的应用程序上传到 Google Play,并向该应用程序添加 IAP。我可以成功检索我的应用程序的 IAP 列表及其价格,但当我实际尝试购买时,我的设备出现以下错误(在

此版本的应用程序未配置为通过以下方式计费 谷歌播放。查看帮助中心以获取更多信息。

以下代码用于检索可用的 IAP 并进行购买

ArrayList skuList = new ArrayList();
        skuList.add("mysqlmanager_pro");

        Bundle querySkus = new Bundle();
        querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
        try
        {
            Bundle skuDetail = mService.getSkuDetails(3, getPackageName(), "inapp", querySkus);
            Log.d("Billing", "Response Received");

            int billingResponse = skuDetail.getInt("RESPONSE_CODE");
            if (billingResponse == 0)
            {
                //Get list of IAP's to purcase - NOT NEEDED
                ArrayList responseList = skuDetail.getStringArrayList("DETAILS_LIST");

                Log.d("Billing", "Response");

                Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), 
                        "mysqlmanager_pro", "inapp", "");

                PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");

                startIntentSenderForResult(pendingIntent.getIntentSender(), 
                        Defines.IntentRequestCodes.IAP_PURCHASE_REQUEST, new Intent(), 
                        Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
                /*for (String thisResponse : responseList)
                {
                    JSONObject object = new JSONObject(thisResponse);
                    String sku = object.getString("productid");
                    String price = object.getString("price");
                }*/
            }

        }
        catch (Exception ex)
        {
            Log.e("Billing", ex.toString());
        }

我的 onCreate 包含以下内容

mServiceConn = new ServiceConnection() {

            @Override
            public void onServiceDisconnected(ComponentName name) {
                mService = null;
            }

            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                mService = IInAppBillingService.Stub.asInterface(service);
            }
        };

        bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), 
                mServiceConn, Context.BIND_AUTO_CREATE);

下面是我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.BoardiesITSolutions.MysqlManager"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="18" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.android.vending.BILLING" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.BoardiesITSolutions.MysqlManager.Agreement"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name=".MainActivity"
            android:label="@string/app_name">
        </activity>
        <activity
            android:name=".NewDBConnection"
            android:label="@string/new_mysql_connection">
        </activity>
        <activity
            android:name=".ConnectionManager"
            android:label="@string/connection_manager">
            <meta-data 
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"/>
        </activity>
        <activity
            android:name=".EditDBConnections"
            android:label="@string/edit_database_connections">
        </activity>
        <activity
            android:name=".ServerStatus"
            android:label="Server Status">
            <meta-data 
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".ConnectionManager"/>
        </activity>
        <activity 
            android:name=".ConnectedDBManagerHost"
            android:label="Connected to DB">
        </activity>
        <receiver android:name="BillingReceiver">
      <intent-filter>
        <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
        <action android:name="com.android.vending.billing.RESPONSE_CODE" />
        <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
      </intent-filter>
    </receiver>
    </application>

</manifest>

感谢您的任何帮助,您可以提供


这里有一些事情需要考虑:

  1. 将您的 apk 上传到 Google Play 后,您需要等待一段时间 让 Google 的服务器更新(类似于您发布 更新)。根据我的经验,这可能需要一两个小时或更长时间。所以 几个小时后重试。

  2. 确保您上传的 apk 版本已配置 IAP(通过权限),然后仅测试带有签名的IAP apk。也就是说,从 Eclipse 导出并签署您的 apk,然后安装 本地到您的设备上。否则,如果您运行未签名的版本 直接从 IDE 运行应用程序,它将无法工作并且 你会看到一个错误。

    注意:您不需要每次进行细微更改时都上传新的 apk,只要当前上传的草稿 apk 配置了正确的权限并且您在开发控制台上发布了 IAP 项目即可。唯一烦人的部分是,每次进行更改后都必须导出并签署应用程序,并在本地设备上运行它。

  3. 检查您上传的apk的versionCode是否相同 versionCode 作为 apk 的本地版本。

  4. 您不能使用您的开发者帐户进行测试购买, 因为 Google 电子钱包不允许您从以下网站购买商品 你自己。所以你需要在Developer上设置一些测试帐户 控制台并尝试从运行测试的设备购买物品 帐户。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序未配置为通过 Google Play 计费 的相关文章

  • 在 Android 上通话结束时启动活动

    我想在通话结束时启动一项活动 找不到任何对此的参考 我该怎么做 我还没有尝试过这个 但我假设你可以运行一些服务 始终在后台运行 它利用电话状态监听器 http developer android com reference android
  • Android 中多个蓝牙连接的自定义 UUID

    我有一个 Android 设备作为服务器连接到多个蓝牙 Android 客户端 我了解 UUID 的概念以及它的独特之处 我的问题是 我可以为连接到我的服务器的所有客户端使用相同的 UUID 吗 如果没有 我如何以编程方式为我的客户端生成
  • android edittext中的字符映射

    我想让我的编辑文本就像我写字符 g 时一样 它是相关的映射自定义字符应该写成印地语中的 我认为应该有字符映射 但没有知识任何人都可以帮助我 怎么做 其他应用程序https play google com store apps details
  • AdapterContextMenuInfo 始终为 null

    我尝试通过 android 开发文档中的书来做到这一点 this didn t create a menu i don t know why registerForContextMenu getListView setListAdapter
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • 插件“Android Bundle Support”不兼容

    大家好 自从上次更新以来 当我启动 android studio 时 我遇到了一个非常奇怪的错误 我有这个错误 插件错误 插件 Android Bundle Support 不兼容 直到构建 AI 195 SNAPSHOT 我在网上找不到任
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • OpCache 不缓存

    我最近激活了 opcache 但它似乎不起作用 通过 phpinfo 确认已激活 如你看到的 0 次点击 1 次错过 1个缓存脚本 opcache gui 我缺少什么 服务器是Linux服务器centos 6 5 vps PHP 5 5 有
  • Emacs 口齿不清;如何从任何类型的变量创建字符串?

    就像错误调用函数的错误消息一样 例如 message file attributes 产生消息 eval Wrong type argument stringp home14 tjones 1 0 0 20415 35598 20211 1
  • setText 不适用于自定义编辑文本

    我正在使用从 github 找到的一个很好的材料设计编辑文本 https github com rengwuxian MaterialEditText https github com rengwuxian MaterialEditText
  • 设置 iPhone 键盘语言

    我希望当用户点击 UITextField 时 iPhone 虚拟键盘会显示为预设的特定语言 例如俄语 有没有办法在 Cocoa 代码中做到这一点 不幸的是 这是用户定义的设置 程序员不能弄乱
  • org.hibernate.AnnotationException:没有为使用 JPA XML 实体映射的实体指定标识符

    我现在使用 Hibernate 5 2 4 Final 从 5 2 3 升级 看看这是否可以修复错误 但仍然没有成功 我有以下 SQL CREATE TABLE Token tokenId BIGINT PRIMARY KEY uuid U
  • 如何导航到相同的父状态

    根据我对 Gmail 和 TED 应用程序的观察 向上导航的行为它将导航到具有相同状态 滚动位置 的父项 这与 Google 在其文档中所说的不同实施向上导航 http developer android com training impl
  • 函数参数中的元组解包

    在下面的函数中 args i 应该通过以下方式解压到函数 func 的参数中 然而在它之前传入的是一个列表 我缺少什么 def mymap func seq args list zip seq ret for i in range len
  • Django allauth - 设置 Facebook 重定向

    在我的应用程序中 我有一个 next 参数 因此当用户登录时 他们将被重定向到他们来自的地方 示例 www mysite com login next www mysite com some section 我在用Django allaut
  • 根据用户角色类型更改布局

    我是 MVC 新手 我浏览了堆栈上的类似帖子 但它们似乎对我的问题没有帮助 我有两个角色管理员和用户 当一个人登录时 我希望布局根据该人是否登录而改变Admin特权或User特权 My Admin布局是 Layout cshtml My U
  • 存储大量会话数据的最佳位置[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 HTML/CSS UI 构建原生 C++ 应用程序? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否可以在使用 HTML 和 CSS 作为用户界面的同时开发 C 程序 我了解如何使用 Webkit 容
  • Python 中有依赖注入容器吗?

    一直在摆弄 python 像往常一样 它让我严格的静态类型面向对象世界变得有点混乱 Python 支持鸭子类型 没有基于接口的编程的可用概念 如 C 接口 并允许全局变量 有了所有这些好处 依赖注入容器真的有任何意义吗 或者 Python
  • 如何在ios 6中的地图上绘制路线?

    我想显示地图并在地图上绘制路线 我的应用程序支持 ios 4 plus 那么我应该如何使用地图在 ios 6 和以前的版本上工作 我还想知道我应该在我的应用程序中使用自定义地图视图来显示地图和路线 还是应该使用 UIApplication
  • Objective C 中的网页抓取

    有没有用于解析 HTML 的 Objective C 库 比如 python 的 BeautifulSoup 谢谢 从Apple的部分来看有NSXML文档 http developer apple com library mac docum
  • 当 hashcode() 返回零时,对 Collection 实现有何影响

    好吧 只是为了知识 它对像这样的 Collection 实现类有什么意义hashmap hashset等等如果object s hashcode方法总是返回0 in a demoClass 我知道这与putForNullKeyhashmap
  • 表视图单元格的圆角半径

    我需要更改单元角半径 如下图所示 func tableView tableView UITableView willDisplayCell cell UITableViewCell forRowAtIndexPath indexPath N
  • 在 C# 中随机“排序”(随机播放)整数列表的最有效方法

    我需要以最有效的方式对整数列表 0 1999 进行随机 排序 有任何想法吗 目前 我正在做这样的事情 bool bIndexSet new bool iItemCount for int iCurIndex 0 iCurIndex lt i
  • Microsoft.Data.Sqlite.SqliteException:“SQLite 错误 14:‘无法打开数据库文件’。”

    我收到此错误 Microsoft Data Sqlite SqliteException SQLite 错误 14 无法打开数据库文件 当我尝试运行此代码时 它是一个 UWP 应用程序 并且我正在使用 sqlite private void
  • “无法将 ?attr/colorPrimary 转换为可绘制对象”

    我正在开始一个新项目 所以该项目或多或少是 空的 我刚刚添加了一个 MainActivity 和一个 MainActivity Fragment 我根本没有向它们添加任何代码 现在 我编辑 styles xml 使其看起来像这样
  • 应用程序未配置为通过 Google Play 计费

    我正在开发一个 android 项目 我正在尝试实现 In App Billing V3 我已将我的应用程序上传到 Google Play 并向该应用程序添加 IAP 我可以成功检索我的应用程序的 IAP 列表及其价格 但当我实际尝试购买时