AdWhirl을 내 앱에 추가하려하지만 간단한 "HelloWorld"로 시작하여 내가하는 일을 알고 있는지 확인하기로 결정했습니다. 물론 충분하지 않다 ... 나는이 코드를 the AdWhirl Android SDK Setup page에서 얻었지만 실행하려고하면이 예외가 발생한다. java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
예외 메시지로 removeView()를 시도 했으므로 라인 layout.addView(adWhirlLayout, layoutParams)
에서 발생한다. 뿐만 아니라 removeAllViews() 제안하지만 여전히이 오류가 발생합니다.AdWhirl이 IllegalStateException을 야기 함
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/layout_main">
<com.adwhirl.AdWhirlLayout
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:id="@+id/adwhirl_layout"></com.adwhirl.AdWhirlLayout>
</LinearLayout>
및 오류 :이 내 main.xml에있다
package hello.adwhirl;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
import com.adwhirl.AdWhirlLayout;
import com.adwhirl.AdWhirlLayout.AdWhirlInterface;
import com.adwhirl.AdWhirlManager;
import com.adwhirl.AdWhirlTargeting;
public class HelloAdWhirl extends Activity implements AdWhirlInterface {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 5);
AdWhirlTargeting.setAge(23);
AdWhirlTargeting.setGender(AdWhirlTargeting.Gender.MALE);
AdWhirlTargeting.setKeywords("online games gaming");
AdWhirlTargeting.setPostalCode("94123");
AdWhirlTargeting.setTestMode(false);
AdWhirlLayout adWhirlLayout = (AdWhirlLayout) findViewById(R.id.adwhirl_layout);
TextView textView = new TextView(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int diWidth = 320;
int diHeight = 52;
int density = (int) getResources().getDisplayMetrics().density;
adWhirlLayout.setAdWhirlInterface(this);
adWhirlLayout.setMaxWidth((int) (diWidth * density));
adWhirlLayout.setMaxHeight((int) (diHeight * density));
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
textView.setText("Below AdWhirlLayout");
LinearLayout layout = (LinearLayout) findViewById(R.id.layout_main);
layout.setGravity(Gravity.CENTER_HORIZONTAL);
layout.addView(adWhirlLayout, layoutParams);
layout.addView(textView, layoutParams);
layout.invalidate();
}
public void adWhirlGeneric() {
// TODO Auto-generated method stub
System.out.println("Do stuff");
}
}
: 아래
는 자바 파일입니다03-19 15:35:54.218: ERROR/AndroidRuntime(3510): FATAL EXCEPTION: main
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): java.lang.RuntimeException: Unable to start activity ComponentInfo{hello.adwhirl/hello.adwhirl.HelloAdWhirl}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2833)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.ActivityThread.access$2300(ActivityThread.java:136)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.os.Handler.dispatchMessage(Handler.java:99)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.os.Looper.loop(Looper.java:143)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.ActivityThread.main(ActivityThread.java:5061)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at java.lang.reflect.Method.invokeNative(Native Method)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at java.lang.reflect.Method.invoke(Method.java:521)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at dalvik.system.NativeStart.main(Native Method)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.view.ViewGroup.addViewInner(ViewGroup.java:1992)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.view.ViewGroup.addView(ViewGroup.java:1887)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.view.ViewGroup.addView(ViewGroup.java:1867)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at hello.adwhirl.HelloAdWhirl.onCreate(HelloAdWhirl.java:50)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2797)
03-19 15:35:54.218: ERROR/AndroidRuntime(3510): ... 11 more
스택 트레이스와 범행 행이 강조 표시되어야합니다. – Snicolas
범인 행을 어떻게 강조합니까? 처음에 언급했습니다. – Stephanie