Closed iPhoneRealbyte closed 6 years ago
CallStack 과 BannerAdView 를 어떤식으로 사용하고 계신지 간단한 SampleCode 를 첨부해주시면 감사하겠습니다.
에러 CallStack 은 따로 남겨두질 않았네요;; 간헐적으로 발생하고 있는데, 다시 에러가 발생하면 남겨두도록 하겠습니다.
mKakaoAdView == null 인 경우에는 아래와 같이 init 하고 있습니다.
mKakaoAdView = new BannerAdView(activity);
mKakaoAdView.setAdListener(new com.kakao.adfit.ads.AdListener() {
@Override
public void onAdLoaded() {
Utils.log("kakao 광고로딩 성공");
if (mAdMobAdView != null) {
destroyAdmobView();
}
}
@Override
public void onAdFailed(int code) {
Utils.log("kakao 광고로딩 실패");
destroyKakaoAdView();
setAdmobBannerAd(activity);
}
@Override
public void onAdClicked() {
Utils.log("kakao 광고 클릭");
}
});
Admob 과 같이 사용하고 있습니다. 카카오 광고를 가져오지 못하면, 화면전환이 이루어질 때, 카카오 뷰를 Add 합니다.
LinearLayout linearLayout = getAdLinearLayout(activity);
if (linearLayout != null) {
if (mKakaoAdView != null) {
ViewGroup pVg = (ViewGroup) mKakaoAdView.getParent();
if (pVg != null) {
pVg.removeView(mKakaoAdView);
}
linearLayout.addView(mKakaoAdView);
}
}
카카오 광고를 로드하지 못하면, Admob 광고를 가져오고, 카카오 뷰를 제거합니다. 혹은 화면이 destory 될 때, 아래 코드를 호출하고 있습니다.
private void removeBannerView(View view) {
try {
ViewGroup pVg = (ViewGroup) view.getParent();
if (pVg != null) {
pVg.removeView(view);
}
} catch (Exception e) {
Utils.log(e);
}
}
private void destroyKakaoAdView() {
if (mKakaoAdView != null) {
ViewGroup pVg = (ViewGroup) view.getParent();
if (pVg != null) {
pVg.removeView(view);
}
removeBannerView(mKakaoAdView);
mKakaoAdView.destroy();
mKakaoAdView = null;
}
}
그리고, 다시 화면 전환이 이뤄지면, 카카오뷰를 Add 합니다.
@iPhoneRealbyte 혹시 항상 발생하는 오류인가요? 간헐적으로 발생하는 오류인가요? 제작하시는 앱에서 동선을 간단히 설명해 주시면 좋을 것 같습니다. ^^;
간헐적으로 발생하고 있습니다. 광고가 있는 화면을 갔다가, 광고가 없는 화면으로 돌아왔을 때, 간헐적으로 발생하고 있습니다.
@iPhoneRealbyte 재현이 되지않아 정확한 원인을 파악하기는 어렵네요. 조만간 방어코드를 추가한 버전을 배포할 예정입니다. 참고해주세요.
한번 확인해봐주시면 좋을 것 같습니다. 그리고 방어코드 버전은 언제쯤 배포될런지요?
at android.app.LoadedApk.forgetReceiverDispatcher (LoadedApk.java:1054) at android.app.ContextImpl.unregisterReceiver (ContextImpl.java:1376) at android.content.ContextWrapper.unregisterReceiver (ContextWrapper.java:659) at com.kakao.adfit.ads.ba.BannerAdView.onDetachedFromWindow (BannerAdView.java:815) at android.view.View.dispatchDetachedFromWindow (View.java:16690) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3426) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3418) at android.view.ViewRootImpl.dispatchDetachedFromWindow (ViewRootImpl.java:3635) at android.view.ViewRootImpl.doDie (ViewRootImpl.java:6576) at android.view.ViewRootImpl.die (ViewRootImpl.java:6553) at android.view.WindowManagerGlobal.removeViewLocked (WindowManagerGlobal.java:446) at android.view.WindowManagerGlobal.removeView (WindowManagerGlobal.java:384) at android.view.WindowManagerImpl.removeViewImmediate (WindowManagerImpl.java:128) at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:4606) at android.app.ActivityThread.-wrap7 (ActivityThread.java) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1689) at android.os.Handler.dispatchMessage (Handler.java:102) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6646) at java.lang.reflect.Method.invoke (Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
@iPhoneRealbyte 많이 늦어서 죄송합니다. 3.0.3 에 패치되었습니다.
안녕하세요. 여기에다가 남겨도 되는지 모르겠네요.
java.lang.IllegalArgumentException: Receiver not registered: com.kakao.adfit.ads.ba.BannerAdView$1@65ccb99
오류가 발생해서, Android 3.0.2 버전 업데이트가 어려울 것 같아서 문의드리고자 합니다. 해당 오류 발생 후 앱이 죽습니다.
at com.kakao.adfit.ads.ba.BannerAdView.onDetachedFromWindow(BannerAdView.java:815)
protected void onDetachedFromWindow() { c.a(e, "onDetachedFromWindow()"); this.getContext().unregisterReceiver(this.d); this.d(); if(this.w != null) { c.c("Ad has been detached from window. Stop ad refresh."); this.w.removeCallbacks(this.x); }
}
에서 발생하고 있는데, 제가 무엇을 잘못하고 있을까요?