마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

광고가 안뜹니다. Avoid passing null as the view root....

0 추천
(생략..)  

public class TActivity extends GraphicsActivity
        implements ColorPickerDialog.OnColorChangedListener {    

(생략..)      		

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
(생략..)                  
        setContentView(new MyView(this));        
                       
        setLayout(); // 레이아웃 합치기  
      
    }

    public void sound2(){
    	// 팬, 그위 아이콘6개 누를때 나는 소리
    	soundpool_menupen.play(menupensound, 1, 1, 0, 0, 1);
    }
    
    public void setLayout(){           
        // 상단 광고 붙이기
        View v = LayoutInflater.from(this).inflate(R.layout.admob_ad, null);
        addContentView( v, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT ) ) ;

        // 상단 메뉴 붙이기
        v = LayoutInflater.from(this).inflate(R.layout.topmenu, null);
        addContentView( v, new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT ) ) ;
        TopMenu.setTopMenu(this, v, 0);
      			
        // 하단 메뉴 붙이기
    	Locale locale = getBaseContext().getResources().getConfiguration().locale;
    	String lancode = locale.getLanguage();	    	
		  v = LayoutInflater.from( this ).inflate( R.layout.bottommenu, null );
		  addContentView( v, new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT ) ) ;
		  BottomMenu.setBottomMenu( this, v, 0 ) ;        	
    }    
    
    
   public class MyView extends View {     
(생략..)  
    }   
	
	public void ShowBefore(){         	         
(생략..)  
        setContentView(new MyView(this));   
        
        setLayout(); // 레이아웃 합치기  
        
	}
	
	
	public void ShowAfter(){
(생략..)  
        setContentView(new MyView(this));   
           
        setLayout(); // 레이아웃 합치기  
        
	}
           
}

-------------------------------------------------------

admob_ad.xml 소스

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
                   xmlns:ads="http://schemas.android.com/apk/res-auto"  
     android:layout_width="fill_parent" android:layout_height="fill_parent" >  
 
<LinearLayout
    android:id="@+id/layoutAdMenu"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:gravity="top"
    android:orientation="vertical"
    android:background="@drawable/ad_bgcolor"
    >
 
<com.google.android.gms.ads.AdView
                    android:background="@drawable/ad_bgcolor"
    android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                                             
                         ads:adUnitId="ca-app-pub-00000000000000000000"
                         ads:adSize="BANNER"/>    
 
</LinearLayout>
 
    
</RelativeLayout>
 
화면오류없이 광고만 안나오네요......첫번째  //상단 광고붙이기 참고
 
프로그램 실행시 모두 정상출력및 작동하는데... 이상하게 광고넣은 위치에 광고만 안보입니다.
 
참고로 다른 곳에 삽입한 광고는 정상적으로 나옵니다.
 
코드 중... addContentView 라인보면. 

 

익명사용자 님이 2014년 11월 10일 질문

1개의 답변

0 추천
아마도 MyView가  ViewGroup이 아니라서 그런것 같습니다.

addContentView 하면 root로 설정한 뷰에 add시키는데 root 뷰가 ViewGroup이 아니라서

root 뷰를 찾지 못해 그런듯 싶습니다.
Gradler (109,780 포인트) 님이 2014년 11월 10일 답변
...