相关疑难解决方法(0)

Google In-App结算,IllegalArgumentException:升级到Android L Dev预览后,服务意图必须明确

我的应用内结算代码工作正常,直到我升级到Android L Dev Preview.现在,当我的应用程序启动时出现此错误.有没有人知道L导致了什么变化或者我应该如何更改我的代码来解决这个问题?

android {
compileSdkVersion 'android-L'
buildToolsVersion '20'
defaultConfig {
    minSdkVersion 13
    targetSdkVersion 'L'
...
...


compile 'com.google.android.gms:play-services:5.+'
compile 'com.android.support:support-v13:21.+'
compile 'com.android.support:appcompat-v7:21.+'
...
...
Run Code Online (Sandbox Code Playgroud)

应用启动时的错误:

06-29 16:22:33.281    5719-5719/com.tbse.wnswfree D/AndroidRuntime? Shutting down VM
06-29 16:22:33.284    5719-5719/com.tbse.wnswfree E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.tbse.wnswfree, PID: 5719
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tbse.wnswfree/com.tbse.wnswfree.InfoPanel}: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.android.vending.billing.InAppBillingService.BIND }
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2317)
        at android.app.ActivityThread.access$800(ActivityThread.java:143)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5070)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372) …
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception android-intent in-app-billing android-5.0-lollipop

56
推荐指数
3
解决办法
3万
查看次数

IAB startSetup NullPointerException

我正在尝试在我的应用程序中设置应用程序内结算.我没有走得太远,并且在尝试启动IabHelper时遇到了空指针异常.我正在关注这个谷歌教程.

import com.iabtest.util.IabHelper;
import com.iabtest.util.IabResult;

public class MainActivity extends Activity
{
    IabHelper mHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String base64EncodedPublicKey = "My_secret_key";

        mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.enableDebugLogging(true); //Turned on to try to help solve the issue
        Log.d("TEST", "Starting setup.");
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener()
        {
            public void onIabSetupFinished(IabResult result)
            {
                Log.d("TEST", "Setup finished.");

                if(!result.isSuccess())
                {
                    // Oh noes, there was a problem.
                    Log.d("TEST", "Problem setting up in-app billing: " + result);
                    return;
                }

                //IAB SET UP!
                Log.d("TEST", …
Run Code Online (Sandbox Code Playgroud)

android in-app-purchase in-app-billing

21
推荐指数
2
解决办法
4641
查看次数

Play商店更新/安装应用程序使用的帐户不同于用户通过IAP进行的帐户

关于github上的这个错误报告https://github.com/googlesamples/android-play-billing/issues/2#issuecomment-305380836我们被要求在这里提出这个问题.

问题很简单.用户手机上有2个或更多账号,比如xyz@gmail.com和abc@gmail.com.他们安装了一个帐户为xyz@gmail.com的应用程序.他们购买了一些IAP项目.该应用程序更新,现在该应用程序在abc@gmail.com下,用户已经失去了购买.使用分阶段发布时会发生很多这种情况.

主要问题是,作为开发人员,我们不允许用户选择要购买哪个帐户或使用哪个帐户来检查购买.

第二个问题,Android上的Play商店应用会忽略在汉堡菜单上选择的用户帐户.唯一的解决方法是使用此解决方法https://github.com/googlesamples/android-play-billing/issues/2#issuecomment-259108286上描述的Play商店网站上的相同错误报告.

我不知道理想的解决方案是什么,我所知道的是,对于每次更新后都会导致大量一星评价的开发人员来说,这是一个巨大的麻烦.

编辑:正如评论所指出的那样,当我提到多个帐户时,我说的是针对单个Android用户的多个Google帐户,我不是在谈论同一部手机中的多个Android用户.

in-app-purchase in-app-billing google-play google-play-services

19
推荐指数
1
解决办法
858
查看次数