오류입니다: 연결된 상태에서 WebView.destroy()가 호출되었습니다.

기기 방향을 변경할 때 이 오류가 발생합니다:

`Error: WebView.destroy()가 아직 연결된 상태에서 호출되었습니다.

이 코드를 사용하세요:

protected void onDestroy()
{
    if (adView != null)
    {
        adView.destroy();
    }
}

이 오류의 원인은 무엇인가요? 이 오류를 피하려면 어떻게 해야 하나요?

질문에 대한 의견 (2)
해결책

먼저 웹뷰를 분리해야 합니다:

webViewPlaceholder.removeView(myWebView);
myWebView.removeAllViews();
myWebView.destroy();

그게 저를 위해 해냈습니다.

해설 (6)

오류를 방지하려면 광고를 삭제하기 전에 모든 조회수를 제거하기만 하면 됩니다.

@Override
public void onDestroy()
{
    if (adView != null)
    {
        adView.removeAllViews();
        adView.destroy();
    }
    super.onDestroy();
}
해설 (3)
 @Override
public void onDetachedFromWindow() {
    super.onDetachedFromWindow();
    if (mWebView != null) {
        mWebView.destroy();
    }
}
해설 (1)

내 테스트에 따르면, 이 문제는 안드로이드 SDK 에 대한, 그리고 최소 v4.2.2+. v6.4.1 너회 애드몹 # 안드로이드 애플리케이션을 테스트할 때 애드몹 (직접판매용 링크는 http://google-mobile-dev.googlecode.com/files/Android_XML.zip http://support. https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals 샘플링합니다 하는 문제가 발생할 때 닫기와 샘플링합니다) 를 출시했다.

오히려 내 해결 방법을.

 @Override
  public void onDestroy()
  {
    // Destroy the AdView.
    if (adView != null)
    {
      final ViewGroup viewGroup = (ViewGroup) adView.getParent();
      if (viewGroup != null)
      {
        viewGroup.removeView(adView);
      }
      adView.destroy();
    }

    super.onDestroy();
  }

다른 사람을 귀찮게 하는 데 도움이 되는 것으로, 그 희망을 애드몹 곧 수리입니다 배정됩니다.

해설 (2)

이 오류가 발생하지 않으려면 부모 레이아웃(예: RelativeLayout)이 있어야 하며 layoutWebView.xml에 정의되어 있을 수 있는 WebView 구성 요소를 제거해야 합니다.





그런 다음 인스턴스 변수에 할당합니다(예::

_layout = (RelativeLayout) findViewById(R.id.webviewRelativeLayout);
webView = (WebView) findViewById(R.id.webView1);

에 할당하고 파괴에서 다음과 같은 작업을 수행합니다:

@Override
protected void onDestroy() {
    super.onDestroy();
    _layout.removeView(webView);
    webView.setFocusable(true);
    webView.removeAllViews();
    webView.clearHistory();
    webView.destroy();
}
해설 (0)