Unity3D Baidu Duoku 액티비티 랙 걸리거나 블랙 화면이 뜬다면

 현재는 중국 바이두 Duoku 마켓의 심의를 통과한 상태입니다. 얼마전 바이두 1.1.0 SDK로 업데이트 해달라고 해서 넘겨주고 생긴 이슈중에 바이두의 로그인 액티비티나 인앱결제등의 따로 뜨는 액티비티들이 보여질 때 화면이 랙이 걸리거나 액티비티가 검은색 화면으로만 뜬다는 이슈가 있었습니다.

 저희 사내 테스트에서는 해당 증상이 없는데 유독 중국에서만 이슈라 스샷도 없네요. 일단 바이두에서는 자기들도 3D 게임 연동은 처음이라며 해결책으로 자꾸 빈 액티비티를 SDK api의 인자로 넘기라고 하더군요. 그래서 func( new Activity() ) 뭐 대충 수도코드로 보자면 이런식으로 넘겼는데 다른 오류만 날뿐 해결되지 않았습니다.

 결과적으로 중국 91 마켓 SDK 3.2.5로 버전 업데이트하면서 나왔던 이슈 해결했듯이 액티비티를 위 그림과 같이 추가로 만들어 관련 기능만 간단히 처리하게 해주면 됩니다.

<!-- Duoku -->
<activity android:name="com.wwforever.dk.DuokuLoginActivity" />
<activity android:name="com.wwforever.dk.DuokuPayActivity" />
<activity android:name="com.wwforever.dk.DuokuAccountActivity" />

 AndroidManifest.xml에는 당연히 위와 같이 추가해주고요. 물론 액티비티는 하나만 만들고 메소드를 3개로 나눠서 구현해줘도 되겠습니다.

 문제는 이렇게해서 생성 호출된 빈 액티비티는 종료를 해줘야하는데요, 종료 시점이

 private void DuokuLoginRequest() {
  // 로그인 요청과 로그인 리스너 등록
  DkPlatform.getInstance().dkLogin(this, new OnLoginProcessListener() {

   @Override
   public void onLoginProcess(int arg0) {
    // TODO Auto-generated method stub

    finish();
   }
  });
 }
 로그인 액티비티의 경우 dkLogin 호출하고 onLoginProcess 콜백을 받아 유니티3D에 로그인 결과를 알려주고나서 finish()를 호출해줍니다.

 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  //setContentView(R.layout.activity_main);
  DuokuAccountManager();
  finish();
 }
 dkAccountManager는 호출하고 바로 finish를 눌러 액티비티를 종료시켜 줘야합니다.

 private void DuokuPayment(int iExchangeRatio, String strMoneyName, int iAmount, String strDesc, String strOrderId) {
  //1.1.0 int로 변경 및 결제 페이지 종료 리스너 OnExitChargeCenterListener를 인자로 넘긴다.
  DkPlatform.getInstance().dkUniPayForCoin(this, iExchangeRatio, strMoneyName, this.strOrderSerial, iAmount, strDesc, new OnExitChargeCenterListener()
  {
   @Override
   public void doOrderCheck(boolean arg0, String arg1) {
    finish();
   }
  });
 }
 마지막으로 바이두 인앱은 결제 창 종료 콜백을 받은 후 유니티3D에 결과를 알려주고 finish()를 해줘야합니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.