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

안드로이드 아담광고붙인후 오류(nullpoint오류)

0 추천

3일째 힘들게 붙일려고노력하고 있으나 잘안되네요 다른사람말로는 로그켓을 올려라해서 한번 소스와 같이 올려봅니다.

먼저 로그켓입니다.

 

03-26 13:59:05.633: E/AndroidRuntime(279): FATAL EXCEPTION: main
03-26 13:59:05.633: E/AndroidRuntime(279): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fiying/com.fiying.MainActivity}: java.lang.NullPointerException
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.os.Looper.loop(Looper.java:123)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-26 13:59:05.633: E/AndroidRuntime(279): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 13:59:05.633: E/AndroidRuntime(279): at java.lang.reflect.Method.invoke(Method.java:521)
03-26 13:59:05.633: E/AndroidRuntime(279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-26 13:59:05.633: E/AndroidRuntime(279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-26 13:59:05.633: E/AndroidRuntime(279): at dalvik.system.NativeStart.main(Native Method)
03-26 13:59:05.633: E/AndroidRuntime(279): Caused by: java.lang.NullPointerException
03-26 13:59:05.633: E/AndroidRuntime(279): at android.view.ViewGroup$LayoutParams.<init>(ViewGroup.java:3573)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3723)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.widget.RelativeLayout$LayoutParams.<init>(RelativeLayout.java:1123)
03-26 13:59:05.633: E/AndroidRuntime(279): at com.fiying.MainActivity.onCreate(MainActivity.java:94)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-26 13:59:05.633: E/AndroidRuntime(279): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
03-26 13:59:05.633: E/AndroidRuntime(279): ... 11 more
 
 
소스입니다.
public class MainActivity extends Activity {
private static final String LOGTAG = "MainActivity";
private RelativeLayout relativeLayout = null;
private AdView adView = null;
 
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(new MyView(this));
 
relativeLayout = new RelativeLayout(this);
 
 
 
// Ad@m 광고 뷰 생성 및 설정
adView = new AdView(this);
// 광고 클릭시 실행할 리스너
adView.setOnAdClickedListener(new OnAdClickedListener() {
@Override
public void OnAdClicked() {
Log.i(LOGTAG, "광고를 클릭했습니다.");
}
});
// 광고 내려받기 실패했을 경우에 실행할 리스너
adView.setOnAdFailedListener(new OnAdFailedListener() {
@Override
public void OnAdFailed(AdError arg0, String arg1) {
Log.w(LOGTAG, arg1);
}
});
// 광고를 정상적으로 내려받았을 경우에 실행할 리스너
adView.setOnAdLoadedListener(new OnAdLoadedListener() {
@Override
public void OnAdLoaded() {
Log.i(LOGTAG, "광고가 정상적으로 로딩되었습니다.");
}
});
// 광고를 불러올때 실행할 리스너
adView.setOnAdWillLoadListener(new OnAdWillLoadListener() {
@Override
public void OnAdWillLoad(String arg1) {
 
Log.i(LOGTAG, "광고를 불러옵니다. : " + arg1);
}
});
// 광고를 닫았을때 실행할 리스너
adView.setOnAdClosedListener(new OnAdClosedListener() {
@Override
public void OnAdClosed() {
Log.i(LOGTAG, "광고를 닫았습니다.");
}
});
// 할당 받은 clientId 설정
adView.setClientId("48e9Z4gT13d9c813477");
// 광고 갱신 시간 : 기본 60초
adView.setRequestInterval(12);
// Animation 효과 : 기본 값은 AnimationType.NONE
adView.setAnimationType(AnimationType.FLIP_HORIZONTAL);
adView.setVisibility(View.VISIBLE);
// XML상에 android:layout_alignParentBottom="true" 와
// 같은 역할을 함
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(adView.getLayoutParams());
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
// 앞에서 만든 params 레이아웃을 광고 뷰에 적용함.
adView.setLayoutParams(params);
relativeLayout.addView(adView);
setContentView(relativeLayout);
 
 
}
@Override
public void onDestroy() {
super.onDestroy();
if (adView != null) {
adView.destroy();
adView = null;
}
 
}
 
부탁드립니다.고수여러분들..!!

 

느낌표시 (460 포인트) 님이 2013년 3월 26일 질문

1개의 답변

0 추천

 

아담에서 배포하는 예제 소스는 광고를 못 받았다고 로그 찍을때

NullPointer예외가 일어날 수 있게 코딩되어있습니다.

// 광고 내려받기 실패했을 경우에 실행할 리스너
adView.setOnAdFailedListener(new OnAdFailedListener() {
@Override
public void OnAdFailed(""+AdError arg0, ""+String arg1) {
Log.w(LOGTAG, arg1);
}
});

이렇게 수정해서 한번 적용 해 보세요

Noizbuster (11,970 포인트) 님이 2013년 3월 27일 답변
이렇게하니 오류가났습니다 어떻게해야할까요??
...