글

라벨이 91sdk인 게시물 표시

Unity3D 91SDK 3.2.6.1 업데이트 변경 작업 사항

이미지
 중국 91 마켓 SDK가 3.2.6.1로 9월 4일에 업데이트 넘어왔습니다. 휴가였기 때문에 다음주인 9월 2째주에 작업을 완료하고 추억이다 뭐다해서 이제야 정리를 해봅니다. 지금은 마켓 심의 통과도 한 상태인데 아무튼 업데이트를 자주 해주네요. 툴바 출력 API 추가 NdCommplatform.getInstance().ndAppVersionUpdate 삭제됨 NdCommplatform.getInstance().ndInit 시에 앱 업데이트 버전 체크가 자동 처리됨 게임 일시정지, Exit 처리  크게 위 2가지 처리를 해주면 됩니다. 유니티3D C#부분은 간단하므로 패스해봅니다. 1. 초기화 및 앱 업데이트 처리 // ND_VERSION_CHECK_LEVEL_STRICT - 업데이트 정보 획득 실패 시 게임 강제 종료. // ND_VERSION_CHECK_LEVEL_NORMAL - 업데이트 정보 획득 실패 시 그냥 게임 진행. appInfo.setNdVersionCheckStatus(NdAppInfo.ND_VERSION_CHECK_LEVEL_STRICT); NdCommplatform.getInstance().ndInit(this, appInfo, new OnInitCompleteListener() { @Override protected void onComplete(int arg0) { // TODO Auto-generated method stub Log.d(LOG_TAG, "ndInit onComplete " + arg0); switch(arg0) { case OnInitCompleteListener.FLAG_NORMAL: //초기화 성공 break; case OnInitCompleteListener.FLAG_FORCE_CLOSE: // 게임 강제 종료 /* * - 일반 업데이트를 유저가 취소할 경우, 게임 플레이에 영향주지 않게 처...

Unity3D 91SDK 3.2.5 버전 초기화시 setContentView 문제

이미지
 중국 마켓 연동과 관련해서 서버와 실제로 작업을 하는 부분말고는 이제 작업이 없길 바랬는데 91마켓이 최신 SDK를 던져주면서 작업하지 않으면 게임 심의 통과 될 수 없는 상황이라며 일거리를 만들어주는군요. 초기화 함수 변경 게임 일시 정지 및 게임 종료시 페이지 출력  3.2.2에서 3.2.5로 업데이트 되면서 추가 처리해줘야 할 부분은 위와같습니다. 91SDK 3.2.5로 업데이트하면서 나온 이슈가 좀 길어서 위와 관련된 부분은 따로 정리를 해볼까합니다. 중간에 삽질 과정이므로 바로 해결책을 보실분은 마지막을 보시면 됩니다. FATAL EXCEPTION: GLThread 5535 java.lang.Error: FATAL EXCEPTION [GLThread 5535] Unity version     : 4.1.2f1 Device model      : Acer A500 Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:121) at com.nd.commplatform.gc.widget.LoadingBar$a.<init>(Unknown Source) at com.nd.commplatform.gc.widget.LoadingBar$a.<init>(Unknown Source) at com.nd.commplatform.gc.widget.LoadingBar.f(Unknown Source) at com.nd.commplatform.gc.widget.LoadingBar.e(Unknown Source) at com.nd.commplatform.gc.widget.LoadingBar.<init>(Unknown S...

91 마켓 플랫폼 SDK와 바이두 Duoku SDK 통합시 충돌사항

이미지
The method dkLogin(Activity, DkProCallbackListener.OnLoginProcessListener) in the type DkPlatform is not applicable for the arguments (Activity, new NdMiscCallbackListener.OnLoginProcessListener(){}) MainActivity.java /WWFoeverGameNoll91DK/src/com/wwfoevergamenoll91dk line 545 Java Problem The method onLoginProcess(int) of type new NdMiscCallbackListener.OnLoginProcessListener(){} must override or implement a supertype method MainActivity.java /WWFoeverGameNoll91DK/src/com/wwfoevergamenoll91dk line 548 Java Problem The type new NdMiscCallbackListener.OnLoginProcessListener(){} must implement the inherited abstract method NdMiscCallbackListener.OnLoginProcessListener.finishLoginProcess(int) MainActivity.java /WWFoeverGameNoll91DK/src/com/wwfoevergamenoll91dk line 545 Java Problem   GameNoll 과 91 마켓 , 그리고 바이두 Duoku 3개를 하나의 유니티3D 안드로이드 플러그인으로 통합하던중 에러가 발생했었습니다. 현재는 여기다가 UC Game 총 4개를 하나로 통합을 한 상태이긴합니다. 보통은 마켓별로 빌드를 따로 하지 않을까 하는데 저희 팀은 통합해서 하나의 플러그인으로 가자고 일정이 정해졌기에 이...

Unity3D Android 91 Market Platform SDK Integration - 4. In-app Billing

이미지
 91마켓 마지막 포스팅입니다. 그런데 중국 인터넷 시장의 3대 천황중 하나인 바이두(Baidu)에서 91닷컴을 인수 해버렸네요. 나중에 91마켓이 작업은 끝났지만 아직은 포스팅하지 않은 바이두 도쿠(Baidu Duoku) SDK에 통합이 될 수도 있겠네요.  지난 포스팅에서 91 플랫폼 실행, 유저 피드백, 앱 업데이트를 정리 했었습니다. 이번에는 91마켓 인앱빌링, 91 머니 충전, 빌링 누락 처리를 정리해보겠습니다. 1. 91마켓 인앱빌링과 91머니 충전  91마켓의 빌링 방식은 2가지가 있습니다. 동기 구매와 비동기 구매인데요, 동기 구매는 애플의 빌트인 모델과 같이 클라이언트딴만 처리하는 것과 같고 비동기는 자체 서버를 두고 하는 방식입니다. 동기 구매에 대한 것을 정리해봅니다. // 빌링 누락 처리를 위한 오더 번호 저장용 private String strBuyInfoSerial; ... public void UniPay_U(final String strProductId, final String strName, final double dPrice, final double dCost, final int iCount, final String strDescription) { runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub NdBuyInfo buyProductInfo = new NdBuyInfo(); if (buyProductInfo != null) { // 유니크 오더 번호 strBuyInfoSerial = UUID.randomUUID().toString(); buyProductInfo.setSerial(strBuyInfoSerial); // 상품ID buyProductInfo.setProductId(str...

Unity3D Android 91 Market Platform SDK Integration - 3. EnterPlatform, UserFeedback, AppUpdate

이미지
  유니티3D 안드로이드에 중국 91 마켓 플랫폼 SDK 초기화, 로그인, 로그아웃 연동 을 정리해봤습니다. 이번에는 91 플랫폼 페이지 및 유저 피드백 페이지, 앱 업데이트 처리에 대한 것을 정리해봅니다. 1. 91 플랫폼 실행 public void EnterPlatform_U() { Log.d(LOG_TAG, "EnterPlatform"); runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub NdCommplatform.getInstance().ndEnterPlatform(0, UnityPlayer.currentActivity); } }); }  91 마켓 플랫폼 메인 페이지를 호출하는 안드로이드 부분입니다. public void EnterPlatform() { curActivity.Call("EnterPlatform_U"); } fYpos += 50; if (GUI.Button(new Rect(0, fYpos, 100, 50), "EnterPlatform") == true) { Plugin91Manager.GetInstance().EnterPlatform(); }  유니티3D Plugin91Manager와 TestGUI 부분입니다.   간단히 SDK 함수 호출해주면 BBS나 소설 기능등이 들어간 91 플랫폼 실행이 가능합니다. 2. 유저 피드백 public void UserFeedback_U() { Log.d(LOG_TAG, "UserFeedback"); runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub N...

Unity3D Android 91 Market Platform SDK Integration - 2. Init, Login, Logout

이미지
  유니티3D 안드로이드에 중국 91.com 플랫폼 SDK 연동 준비작업 을 정리했었습니다. 이번에는 91SDK 초기화 및 로그인 로그아웃 처리를 정리해보겠습니다. 1. Init public class MainActivity extends UnityPlayerActivity { private final int AppId = 123456; private final String AppKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; private final String LOG_TAG = "UNITY91SDKTEST"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); init91SDK(); } private void init91SDK() { // 결재와 버전 업데이트를 디버그 모드로. 개발 테스트 완료되면 삭제한다. //NdCommplatform.getInstance().ndSetDebugMode(0); NdAppInfo appInfo = new NdAppInfo(); appInfo.setAppId(AppId); appInfo.setAppKey(AppKey); appInfo.setCtx(this); NdCommplatform.getInstance().initial(0, appInfo); NdCommplatform.getInstance().ndSetScreenOrientation(NdCommplatform.SCREEN_ORIENTATION_AUTO); // 게임내에서 sdk api 호출해서 로그아웃 말고 91 플랫폼안에서 로그아웃시에 대한 처리들 // true면 계정 교체시 게임 재시작. false면 계정 교체 페이지 팝업 NdCommplatform.getInstan...

Unity3D Android 91 Market Platform SDK Integration - 1. 준비작업

이미지
  유니티3D 안드로이드에 중국 GameNoll의 SDK 연동 을 했었습니다. 이번에는 중국에서 안즈와, 360마켓, 완또우자등과 함께 중국 안드로이드 시장을 대표하는 앱 마켓인 91.com의 마켓 플랫폼 SDK 연동을 위한 준비작업에 대해 포스팅해봅니다. GameNoll과 마찬가지로 해당 SDK 설치나 다운로드는 저도 제가 직접 받은게 아닌 업무적인 절차로 처리된 것을 받은것이라 이 부분은 잘 모르겠네요. SDK를 이미 가지고 있고 압축 해제까지 했다는 전제로 진행합니다. 1. 유니티3D 안드로이드 플러그인 기본 작업   유니티3D 안드로이드 Jar 플러그인 프로젝트를 만들어 기본적인 처리 를 합니다. 전 스샷과 같이 패키지명을 com.wwforever.plugin91 이라고 했습니다. 참고로 91측에서 요구하는 필수 개발사항중 패키지명에 91이 위 스샷과 같이 꼭 포함 되어야한다고 하네요.  다음으로 91SDK 압축해제 후 SDK_lib\91SDK_LibProject\libs 안에있는 NdComPlatform.jar 파일을 Java Build Path의 Add External JARs로 추가합니다. 2. AndroidManifest.xml 수정 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="and...

Unity3D 91.com SDK android.content.res.Resources$NotFoundException: Resource ID #0x0

이미지
FATAL EXCEPTION: main java.lang.Error: FATAL EXCEPTION [main] Unity version     : 4.1.2f1 Device model      : Acer A500 Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wwforever.plugin91/com.nd.commplatform.activity.SNSLoginActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x0 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) at android.app.ActivityThread.access$600(ActivityThread.java:123) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller...