2017年8月30日

Service Intent must be explicit: Intent { act=com.android.vending.billing.InAppBillingService.BIND }

IabHelper.java

增加一行指令即可!

   public void startSetup(final OnIabSetupFinishedListener listener) {
        // If already set up, can't do it again.
        if (mSetupDone) throw new IllegalStateException("IAB helper is already set up.");
        // Connection to IAB service
        logDebug("Starting in-app billing setup.");
        mServiceConn = new ServiceConnection() {

              .....................省略

        };
       
        Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
        serviceIntent.setPackage("com.android.vending");

              .....................省略

    }

2017年7月28日

Android: In-app-billing 付費機制Google範例

Preparing Your In-app Billing Application
Administering In-app Billing
Security and Design

AndroidManifest.xml中必須增加底下宣告:
 <uses-permission android:name="com.android.vending.BILLING" />
Package的名稱必須Rename,
package com.wsj.android.trivialdrivesample;
換入你上傳App後的金鑰,
String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0B...省略.....";
Google Play Console中,產生程式中購買的對應物品,以便測試

  • 手機的primary gmail帳號要設成測試gmail帳號,不能用開發者的gmail帳號!
  • APK必須發佈Alpha或Beta才能測試,利用所附的URL成為測試人員,然後下載APP.
  • "錯誤!此項目目前無法購買"<----退出計畫,後重新成為測試人員!!
  • 所欲購買項目必須啟動(in Active)
  • "錯誤!請先入登入GOOGLE帳戶"<---加入Alpha/Beta測試計畫
  • 測試帳號須登登錄信用卡資訊才能完成測試購買

2017年4月27日

Android: Eclipse 使用android-support-v7-appcompat.jar和android-design-support.jar和google-play-services

有些舊project不想翻新到Android Studio,但又想增加新功能,但是程式範例用到新的jar,不得已只好想辦法,舊瓶裝新酒。

android-support-v7-appcompat.jar :import程式碼project,編譯(target到android 5.0以上)。
引用的project在project的內容中,加入reference即可。

android-design.support.jar:引用的project直接用外部jar即可。

google-play-services:import /extras/google/google_play_services/libproject/google-play-services_lib專案。(好像r30版本之後沒有此專案!幸好還找得到下載舊版的地方)

2017年4月12日

Android: AlertDialog 改變其高度

AlertDialog alert = new AlertDialog.Builder(this).create();
alert.show();  
//
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int h90 = (int)(0.9f*((float)metrics.heightPixels)) ;   //高度設為90%
alert.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, h90);
//

2017年3月21日

Unable to execute dex: GC overhead limit exceeded in Eclipse

Export專案時,發生上述的錯誤,原來是Eclipse的在Eclipse.ini中的Xms和Xmx值設定太小,將其設成 512 和 1024 即可。
-Xms512m 
-Xmx1024m