Java 如何修复在android代码中重新加载admob片段导致的崩溃?

Java 如何修复在android代码中重新加载admob片段导致的崩溃?,java,android,xml,android-fragments,admob,Java,Android,Xml,Android Fragments,Admob,在从处解决的解决方案 第一次加载广告时,效果很好。从其他屏幕加载后调用main时,应用程序崩溃。我相信这是由于调用广告后,它已经被实例化,但我不知道如何修复它 来自logcat的错误 12-14 11:14:49.670: D/AndroidRuntime(2356): Shutting down VM 12-14 11:14:49.670: D/AndroidRuntime(2356): --------- beginning of crash 12-14 11:14:49.670: E/An

在从处解决的解决方案

第一次加载广告时,效果很好。从其他屏幕加载后调用main时,应用程序崩溃。我相信这是由于调用广告后,它已经被实例化,但我不知道如何修复它

来自logcat的错误

12-14 11:14:49.670: D/AndroidRuntime(2356): Shutting down VM
12-14 11:14:49.670: D/AndroidRuntime(2356): --------- beginning of crash
12-14 11:14:49.670: E/AndroidRuntime(2356): FATAL EXCEPTION: main
12-14 11:14:49.670: E/AndroidRuntime(2356): Process: com.frankspitulski.converter, PID: 2356
12-14 11:14:49.670: E/AndroidRuntime(2356): android.view.InflateException: Binary XML file line #71: Error inflating class fragment
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.app.Activity.setContentView(Activity.java:2144)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at com.frankspitulski.converter.MainActivity.main(MainActivity.java:33)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at com.frankspitulski.converter.MainActivity.access$5(MainActivity.java:32)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at com.frankspitulski.converter.MainActivity$6.onClick(MainActivity.java:89)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.View.performClick(View.java:4756)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.view.View$PerformClick.run(View.java:19749)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.os.Handler.handleCallback(Handler.java:739)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.os.Handler.dispatchMessage(Handler.java:95)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.os.Looper.loop(Looper.java:135)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.app.ActivityThread.main(ActivityThread.java:5221)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at java.lang.reflect.Method.invoke(Native Method)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at java.lang.reflect.Method.invoke(Method.java:372)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
12-14 11:14:49.670: E/AndroidRuntime(2356): Caused by: java.lang.IllegalArgumentException: Binary XML file line #71: Duplicate id 0x7f0c005f, tag null, or parent id 0xffffffff with another fragment for com.frankspitulski.converter.MainActivity$AdFragment
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2120)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at android.app.Activity.onCreateView(Activity.java:5282)
12-14 11:14:49.670: E/AndroidRuntime(2356):     at                     android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
12-14 11:14:49.670: E/AndroidRuntime(2356):     ... 19 more
主Java类

package com.frankspitulski.converter;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends FragmentActivity {
String l1="";
String l2="";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   // generateAdvert();

    main();
}

private void main(){
            setContentView(R.layout.activity_main);

     Button mass = (Button)findViewById(R.id.button2);
     Button distance = (Button)findViewById(R.id.button1);
     Button temp = (Button)findViewById(R.id.button3);
     Button volume = (Button)findViewById(R.id.button4);
     Button time = (Button)findViewById(R.id.button5);

    distance.setOnClickListener(new View.OnClickListener() {        
        @Override
        public void onClick(View v) {

            distance();
        }
    });
    mass.setOnClickListener(new View.OnClickListener() {        
        @Override
        public void onClick(View v) {
            mass();
        }
    });
    temp.setOnClickListener(new View.OnClickListener() {        
        @Override
        public void onClick(View v) {
            temp();
        }
    });
    volume.setOnClickListener(new View.OnClickListener() {      
        @Override
        public void onClick(View v) {
            volume();
        }
    });
    time.setOnClickListener(new View.OnClickListener() {        
        @Override
        public void onClick(View v) {
            time();
        }
    });

}

private void distance(){
    setContentView(R.layout.activity_distance);
     final ListView list1 = (ListView)findViewById(R.id.listView1);
     final ListView list2 = (ListView)findViewById(R.id.listView2);
     Button compute = (Button)findViewById(R.id.buttonDistance);
     final TextView output = (TextView)findViewById(R.id.textView2);
     final EditText in = (EditText)findViewById(R.id.editText1);
     Button okay = (Button)findViewById(R.id.okay);
     Button back = (Button)findViewById(R.id.button1);

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                main();


        }   });

    okay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(in.getWindowToken(), 0);
        }   }); 

    compute.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            output.setHint("");
            try{
                if(l1.equals("")||l2.equals("")){
                    output.setText("Select units.");
                }
                else{
                    try{
                            double meter = 0;
                            double input=Double.valueOf(in.getText().toString());
                            if(l1.equals("inches")){
                                meter=input*0.0254;
                            }
                            if(l1.equals("feet")){
                                meter=input*0.3048;
                            }
                            if(l1.equals("yards")){
                                meter=input*0.9144;
                            }
                            if(l1.equals("miles")){
                                meter=input*1609.344;
                            }
                            if(l1.equals("millimeters")){
                                meter=input/1000.0;
                            }
                            if(l1.equals("centimeters")){
                                meter=input/100.0;
                            }
                            if(l1.equals("meters")){
                                meter=input;
                            }
                            if(l1.equals("kilometers")){
                                meter=input*1000.0;
                            }

                            if(l2.equals("inches")){
                                meter*=39.3700787;
                            }
                            if(l2.equals("feet")){
                                meter*=3.2808399;
                            }
                            if(l2.equals("yards")){
                                meter*=1.0936133;
                            }
                            if(l2.equals("miles")){
                                meter*=0.000621371192;
                            }
                            if(l2.equals("millimeters")){
                                meter*=1000.0;
                            }
                            if(l2.equals("centimeters")){
                                meter*=100.0;
                            }
                            if(l2.equals("meters")){

                            }
                            if(l2.equals("kilometers")){
                                meter/=1000.0;
                            }
                            meter=Math.round(meter*100000000.0)/100000000.0;
                            output.setText(""+meter);
                        }
                    catch(Exception e){
                        output.setText("Enter a value.");
                    }
                }
            }
            catch(Exception e){
                output.setText("Select units.");
            }
        }
    });

    list1.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l1=list1.getItemAtPosition(i).toString();
        }  
    });

    list2.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l2=list2.getItemAtPosition(i).toString();
        }  
    });

}

private void mass(){
    setContentView(R.layout.activity_mass);
    final ListView list1 = (ListView)findViewById(R.id.listView1);
 final ListView list2 = (ListView)findViewById(R.id.listView2);
 Button compute = (Button)findViewById(R.id.buttonDistance);
 final TextView output = (TextView)findViewById(R.id.textView2);
 final EditText in = (EditText)findViewById(R.id.editText1);
 Button okay = (Button)findViewById(R.id.okay);
 Button back = (Button)findViewById(R.id.button1);

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            main();
        }   });

    okay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(in.getWindowToken(), 0);
        }   }); 

    compute.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            output.setHint("");
            try{
                if(l1.equals("")||l2.equals("")){
                    output.setText("Select units.");
                }
                else{
                    try{
                            double kg = 0;
                            double input=Double.valueOf(in.getText().toString());
                            if(l1.equals("ounces")){
                                kg=input*0.0283495231;
                            }
                            if(l1.equals("pounds")){
                                kg=input*0.45359237;
                            }
                            if(l1.equals("tons")){
                                kg=input*907.18474;
                            }
                            if(l1.equals("milligrams")){
                                kg=input*.000001;
                            }
                            if(l1.equals("grams")){
                                kg=input*0.001;
                            }
                            if(l1.equals("kilograms")){
                                kg=input;
                            }

                            if(l2.equals("ounces")){
                                kg*=35.2739619;
                            }
                            if(l2.equals("pounds")){
                                kg*=2.20462262;
                            }
                            if(l2.equals("tons")){
                                kg*=0.00110231131;
                            }
                            if(l2.equals("milligrams")){
                                kg*=1000000;
                            }
                            if(l2.equals("grams")){
                                kg*=1000;
                            }
                            if(l2.equals("kilograms")){

                            }

                            kg=Math.round(kg*100000000.0)/100000000.0;
                            output.setText(""+kg);
                        }
                    catch(Exception e){
                        output.setText("Enter a value.");
                    }
                }
            }
            catch(Exception e){
                output.setText("Select units.");
            }
        }
    });

    list1.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l1=list1.getItemAtPosition(i).toString();
        }  
    });

    list2.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l2=list2.getItemAtPosition(i).toString();
        }  
    });
}

private void temp(){
    setContentView(R.layout.activity_temp);
    final ListView list1 = (ListView)findViewById(R.id.listView1);
 final ListView list2 = (ListView)findViewById(R.id.listView2);
 Button compute = (Button)findViewById(R.id.buttonDistance);
 final TextView output = (TextView)findViewById(R.id.textView2);
 final EditText in = (EditText)findViewById(R.id.editText1);
 Button okay = (Button)findViewById(R.id.okay);
 Button back = (Button)findViewById(R.id.button1);


    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            main();
        }   });

    okay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(in.getWindowToken(), 0);
        }   }); 

    compute.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            output.setHint("");
            try{
                if(l1.equals("")||l2.equals("")){
                    output.setText("Select units.");
                }
                else{
                    try{
                            double celsius = 0;
                            double input=Double.valueOf(in.getText().toString());
                            boolean o=true;
                            if(l1.equals("celsius")){
                                celsius=input;
                            }
                            if(l1.equals("fahrenheit")){
                                celsius=(input-32)/1.8;
                            }
                            if(l1.equals("kelvin")){
                                celsius=input-273.15;
                            }

                            if(celsius<-273.15){
                                output.setText("Impossible.");
                                o=false;
                            }

                            if(l2.equals("celsius")){

                            }
                            if(l2.equals("fahrenheit")){
                                celsius=celsius*1.8+32;
                            }
                            if(l2.equals("kelvin")){
                                celsius+=273.15;
                            }

                            celsius=Math.round(celsius*100000000.0)/100000000.0;
                            if(o)
                            output.setText(""+celsius);
                        }
                    catch(Exception e){
                        output.setText("Enter a value.");
                    }
                }
            }
            catch(Exception e){
                output.setText("Select units.");
            }
        }
    });

    list1.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l1=list1.getItemAtPosition(i).toString();
        }  
    });

    list2.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l2=list2.getItemAtPosition(i).toString();
        }  
    });
}

private void volume(){
    setContentView(R.layout.activity_volume);
    final ListView list1 = (ListView)findViewById(R.id.listView1);
 final ListView list2 = (ListView)findViewById(R.id.listView2);
 Button compute = (Button)findViewById(R.id.buttonDistance);
 final TextView output = (TextView)findViewById(R.id.textView2);
 final EditText in = (EditText)findViewById(R.id.editText1);
 Button okay = (Button)findViewById(R.id.okay);
 Button back = (Button)findViewById(R.id.button1);


    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            main();
        }   });

    okay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(in.getWindowToken(), 0);
        }   }); 

    compute.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            output.setHint("");
            try{
                if(l1.equals("")||l2.equals("")){
                    output.setText("Select units.");
                }
                else{
                    try{
                            double input=Double.valueOf(in.getText().toString());
                            double liter=0;
                            if(l1.equals("liters")){
                                liter=input;
                            }
                            if(l1.equals("tablespoons")){
                                liter=input*0.0147867648437;
                            }
                            if(l1.equals("teaspoons")){
                                liter=input*0.00492892161458;
                            }
                            if(l1.equals("quarts")){
                                liter=input*0.94635295;
                            }
                            if(l1.equals("pints")){
                                liter=input*0.473176475;
                            }
                            if(l1.equals("fluid ounces")){
                                liter=input*0.0295735296875;
                            }
                            if(l1.equals("gallons")){
                                liter=input*3.7854118;
                            }

                            if(l2.equals("liters")){

                            }
                            if(l2.equals("tablespoons")){
                                liter*=67.62804511806765;
                            }
                            if(l2.equals("teaspoons")){
                                liter*=202.8841353536541;
                            }
                            if(l2.equals("quarts")){
                                liter*=1.0566882049662338;
                            }
                            if(l2.equals("pints")){
                                liter*=2.1133764099324677;
                            }
                            if(l2.equals("fluid ounces")){
                                liter*=33.81402255891948;
                            }
                            if(l2.equals("gallons")){
                                liter*=0.26417205124155846;
                            }

                            liter=Math.round(liter*100000000.0)/100000000.0;
                            output.setText(""+liter);
                        }
                    catch(Exception e){
                        output.setText("Enter a value.");
                    }
                }
            }
            catch(Exception e){
                output.setText("Select units.");
            }
        }
    });

    list1.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l1=list1.getItemAtPosition(i).toString();
        }  
    });

    list2.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l2=list2.getItemAtPosition(i).toString();
        }  
    });
}

private void time(){
    setContentView(R.layout.activity_time);
    final ListView list1 = (ListView)findViewById(R.id.listView1);
 final ListView list2 = (ListView)findViewById(R.id.listView2);
 Button compute = (Button)findViewById(R.id.buttonDistance);
 final TextView output = (TextView)findViewById(R.id.textView2);
 final EditText in = (EditText)findViewById(R.id.editText1);
 Button okay = (Button)findViewById(R.id.okay);
 Button back = (Button)findViewById(R.id.button1);

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            main();
        }   });

    okay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(in.getWindowToken(), 0);
        }   }); 

    compute.setOnClickListener(new View.OnClickListener() {     
        @Override
        public void onClick(View v) {

            output.setHint("");
            try{
                if(l1.equals("")||l2.equals("")){
                    output.setText("Select units.");
                }
                else{
                    try{
                            double input=Double.valueOf(in.getText().toString());
                            double second=0;
                            if(l1.equals("seconds")){
                                second=input;
                            }
                            if(l1.equals("milliseconds")){
                                second=input*0.001;
                            }
                            if(l1.equals("minutes")){
                                second=input*60;
                            }
                            if(l1.equals("hours")){
                                second=input*3600;
                            }
                            if(l1.equals("days")){
                                second=input*3600*24;
                            }
                            if(l1.equals("weeks")){
                                second=input*3600*24*7;
                            }
                            if(l1.equals("years")){
                                second=input*3600*24*365.25;
                            }
                            if(l1.equals("millenia")){
                                second=input*1000*3600*24*365.25;
                            }

                            if(l2.equals("seconds")){

                            }
                            if(l2.equals("milliseconds")){
                                second*=1000;
                            }
                            if(l2.equals("minutes")){
                                second/=60;
                            }
                            if(l2.equals("hours")){
                                second/=3600;
                            }
                            if(l2.equals("days")){
                                second/=(3600*24);
                            }
                            if(l2.equals("weeks")){
                                second/=(3600*24*7);
                            }
                            if(l2.equals("years")){
                                second/=(3600*24*365.25);
                            }
                            if(l2.equals("millenia")){
                                second/=(3600*24*365.25*1000);
                            }

                            second=Math.round(second*100000000.0)/100000000.0;
                            output.setText(""+second);
                        }
                    catch(Exception e){
                        output.setText("Enter a value.");
                    }
                }
            }
            catch(Exception e){
                output.setText("Select units.");
            }
        }
    });

    list1.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l1=list1.getItemAtPosition(i).toString();
        }  
    });

    list2.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            l2=list2.getItemAtPosition(i).toString();
        }  
    });
}


public static class AdFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        return inflater.inflate(R.layout.advert, container, false);
    }

    @Override
    public void onActivityCreated(Bundle bundle) {
        super.onActivityCreated(bundle);
        AdView mAdView = (AdView) getView().findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }

}
}
XML布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:textAlignment="center"
tools:context="${relativePackage}.${activityClass}" >

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button1"
    android:layout_alignRight="@+id/button1"
    android:layout_below="@+id/button1"
    android:layout_marginTop="23dp"
    android:text="Mass" />

<Button
    android:id="@+id/button3"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button4"
    android:layout_alignRight="@+id/button4"
    android:layout_below="@+id/button4"
    android:layout_marginTop="20dp"
    android:text="Temp" />

<Button
    android:id="@+id/button4"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button2"
    android:layout_alignRight="@+id/button2"
    android:layout_below="@+id/button2"
    android:layout_marginTop="21dp"
    android:text="Volume" />

<Button
    android:id="@+id/button5"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button3"
    android:layout_alignRight="@+id/button3"
    android:layout_below="@+id/button3"
    android:layout_marginTop="19dp"
    android:text="Time" />

<Button
    android:id="@+id/button1"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:text="@string/distance" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:gravity="center_horizontal"
    android:text="@string/test"
    android:textAlignment="center" />

<fragment
    android:id="@+id/fragment1"
    android:name="com.frankspitulski.converter.MainActivity$AdFragment"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    class="com.frankspitulski.converter.MainActivity$AdFragment" />

</RelativeLayout>
XML清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.frankspitulski.converter"
android:versionCode="1"
android:versionName="1.0" >



<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="21" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application

    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:theme="@android:style/Theme.Translucent" />

    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
</application>
AdFragment类使用的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="match_parent"
android:layout_height="match_parent">

<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_ad_unit_id" >
</com.google.android.gms.ads.AdView>

</RelativeLayout>

据我所知,项目设置正确,库导入正确。欢迎任何帮助,提前感谢。

它抱怨两个或多个组件的Id重复,其中一个是您的adView。我在您的层次结构中看不到任何这样的重复,所以很可能是由于构建输出中的旧工件造成的


请执行干净的构建,然后重试。我怀疑这会解决问题。

另一个问题是,有人忘记发布实际的崩溃信息。我添加了logcat的错误。对不起,这是我的第一篇帖子。