2015-01-06 6 views
0

내 Android 앱의 액티비티에 abmob 광고를 추가하려고하지만 조각이로드되지 않습니다. 응용 프로그램이 크래시를로드하고 ActivityInfo {catchmedia.jamaica.dictionary/catchmedia.jamaica.dictionary.HomeActivity}를 시작할 수 없습니다. android.view.InflateException : 이진 XML 파일 줄 15 번 : 클래스 조각을 부 풀리는 동안 오류가 발생했습니다. 내가 잘못 한게 뭐지?조각을 액티비티에로드 할 수 없습니다.

스택 트레이스

01-06 22:28:02.335 1356-1356/catchmedia.jamaica.dictionary E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: catchmedia.jamaica.dictionary, PID: 1356 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{catchmedia.jamaica.dictionary/catchmedia.jamaica.dictionary.HomeActivity}: android.view.InflateException: Binary XML file line #15: Error inflating class fragment 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
      at android.app.ActivityThread.access$800(ActivityThread.java:135) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:136) 
      at android.app.ActivityThread.main(ActivityThread.java:5017) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class fragment 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
      at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 
      at android.app.Activity.setContentView(Activity.java:1929) 
      at catchmedia.jamaica.dictionary.HomeActivity.onCreate(HomeActivity.java:39) 
      at android.app.Activity.performCreate(Activity.java:5231) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5017) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004 
      at android.content.res.Resources.getValue(Resources.java:1123) 
      at android.content.res.Resources.loadXmlResourceParser(Resources.java:2309) 
      at android.content.res.Resources.getLayout(Resources.java:939) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:395) 
      at catchmedia.jamaica.dictionary.HomeActivity$AdFragment.onCreateView(HomeActivity.java:156) 
      at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786) 
      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:920) 
      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
      at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1206) 
      at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2159) 
      at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:297) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 
            at android.app.Activity.setContentView(Activity.java:1929) 
            at catchmedia.jamaica.dictionary.HomeActivity.onCreate(HomeActivity.java:39) 
            at android.app.Activity.performCreate(Activity.java:5231) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
            at android.app.ActivityThread.access$800(ActivityThread.java:135) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5017) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
            at dalvik.system.NativeStart.main(Native Method) 
01-06 22:28:04.183 1356-1356/catchmedia.jamaica.dictionary I/Process﹕ Sending signal. PID: 1356 SIG: 9 

AdFragment

<?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"> 

    <!--ads:adUnitId sets the ad unit ID, which is defined in values/strings.xml --> 
    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id" /> 

</RelativeLayout> 

XML 코드

<android.support.v4.view.ViewPager 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
</android.support.v4.view.ViewPager> 


<fragment 
    android:id="@+id/adFragment" 
    android:name="catchmedia.jamaica.dictionary.HomeActivity$AdFragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" /> 

클래스

package catchmedia.jamaica.dictionary; 

import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 

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

import java.util.List; 

import catchmedia.jamaica.dictionary.adapter.TabsPagerAdapter; 
import database.DatabaseHandler; 
import database.DatabaseInfo; 
import database.Word; 

public class HomeActivity extends FragmentActivity implements 
     ActionBar.TabListener { 

    private ViewPager viewPager; 
    private TabsPagerAdapter tabsPagerAdapter; 
    private ActionBar actionBar; 
    DatabaseHandler db = new DatabaseHandler(this); 

    private String[] tabsTitles = {"Lesson", "Word"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 

     initializeDatabase(); 

     viewPager = (ViewPager) findViewById(R.id.pager); 
     actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     tabsPagerAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

     viewPager.setAdapter(tabsPagerAdapter); 
     actionBar.setHomeButtonEnabled(true); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Adding Tabs 
     for (String tab_name : tabsTitles) { 
      actionBar.addTab(actionBar.newTab().setText(tab_name) 
        .setTabListener(this)); 
     } 

     /** 
     * on swiping the viewpager make respective tab selected 
     * */ 
     viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int position) { 
       // on changing the page 
       // make respected tab selected 
       actionBar.setSelectedNavigationItem(position); 
      } 

      @Override 
      public void onPageScrolled(int arg0, float arg1, int arg2) { 
      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 
      } 
     }); 

    } 

    public void initializeDatabase() { 
     List<Word> words = db.getAllWords(); 

     if (words.size() == 0) { 
      DatabaseInfo info = new DatabaseInfo(db); 
      info.insertWords(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 


     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public void onTabReselected(Tab arg0, FragmentTransaction arg1) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     // on tab selected 
     // show respected fragment view 
     viewPager.setCurrentItem(tab.getPosition()); 
    } 

    @Override 
    public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle presses on the action bar items 
     switch (item.getItemId()) { 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    public static class AdFragment extends Fragment { 

     private AdView mAdView; 

     public AdFragment() { 
     } 

     @Override 
     public void onActivityCreated(Bundle bundle) { 
      super.onActivityCreated(bundle); 

      mAdView = (AdView) getView().findViewById(R.id.adView); 

      AdRequest adRequest = new AdRequest.Builder() 
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
        .build(); 

      mAdView.loadAd(adRequest); 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      return inflater.inflate(R.layout.fragment_ad, container, false); 
     } 

     /** Called when leaving the activity */ 
     @Override 
     public void onPause() { 
      if (mAdView != null) { 
       mAdView.pause(); 
      } 
      super.onPause(); 
     } 

     /** Called when returning to the activity */ 
     @Override 
     public void onResume() { 
      super.onResume(); 
      if (mAdView != null) { 
       mAdView.resume(); 
      } 
     } 

     /** Called before the activity is destroyed */ 
     @Override 
     public void onDestroy() { 
      if (mAdView != null) { 
       mAdView.destroy(); 
      } 
      super.onDestroy(); 
     } 

    } 
} 
+0

XML 파일'activity_home'에 오류가 있습니다. XML 코드를 게시하십시오. – Rohit5k2

+0

나는 active_home.xml에있는 모든 내용을 xml 코드 – DacorieS

+0

plz에 올렸으며 스택 트레이스 – petey

답변

0

HomeActivity 클래스에서 android.support.v4.app.Fragment, android.support.v4.app.FragmentActivity 등을 가져 왔습니다. 여기에는 충돌이 있습니다.

XML에 <fragment>을 사용하고 있습니다. 당신이 조각을 사용하고 API 11 전에 장치 를 대상으로 할 경우

<android.support.v4.app.fragment 
    android:id="@+id/adFragment" 
    android:name="catchmedia.jamaica.dictionary.HomeActivity$AdFragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" /> 

, 당신이 사용 android.support.v4를 사용한다 : 당신은 android.app.Fragment에 수입을 변경하거나 XML을 변경하거나 필요 .app.Fragment. 그러나 API 11 이상을 실행하는 기기 만 타겟팅하는 경우 android.app.Fragment를 사용할 수 있습니다.

그렇지 않으면 안드로이드 지원 라이브러리에서 Fragment와 Fragment를 사용하여 충돌합니다.

0

AdFragment가 android.support.v4.Fragment에서 확장되면 xml 파일에서 fragment를 android.support.v4.Fragment로 변경해야합니다.

관련 문제