3

잠시 동안 Android 앱에 Facebook 잠재 고객 네트워크를 통합했으며 지금까지 아무런 문제가 없었습니다.com.facebook.ads.MediaView 클래스를 부 풀릴 때 오류가 발생했습니다.

최근 페이스 북 API 호출을 v2.5에서 v3.0으로 업데이트했으며이 보고서를 내 Crashlytic에 제공하기 시작했습니다. 업데이트 후에는 작동하지만 더 이상 작동하지 않습니다. 나는 v2.5로 되돌아 가려하고 상황이 개선되는지 볼 수는 있지만 다른 사람들이 비슷한 문제에 직면했을 때 희망을두고 여기에 답을 해줄 수있다.

private void processLoadedAd(final NativeAd nativeAd) { 
    nativeAd.setAdListener(new AdListener() { 
     @Override 
     public void onError(Ad ad, AdError adError) { 

     } 

     @Override 
     public void onAdLoaded(Ad ad) { 
      Log.e(TAG, "onAdLoaded: " + ad); 
      if (nativeAd != null) { 
       nativeAd.unregisterView(); 
      } 

      arrayNativeAd.add(nativeAd); 
      adapterBulletinsRecommended.notifyDataSetChanged(); 
      rlRecommended.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onAdClicked(Ad ad) { 

     } 

     @Override 
     public void onLoggingImpression(Ad ad) { 

     } 
    }); 
    nativeAd.loadAd(); 
} 

// Display our text and image at the specified position in the list 
    @Override 
    public void onBindViewHolder(final ViewHolder viewHolder, final int position) { 
     final NativeAd nativeAd = nativeAds.get(position); 
     viewHolder.itemView.setTag(nativeAd); 

     viewHolder.mvAdPicture.setNativeAd(nativeAd); 

     try { 
      Glide.with(context) 
        .load(nativeAd.getAdIcon().getUrl()) 
        .thumbnail(0.1f) 
        .dontAnimate() 
        .diskCacheStrategy(DiskCacheStrategy.RESULT) 
        .into(viewHolder.ivAdIcon); 
     } catch (NullPointerException e) { 
      e.printStackTrace(); 
     } 

     try { 
      Glide.with(context) 
        .load(nativeAd.getAdChoicesIcon().getUrl()) 
        .thumbnail(0.1f) 
        .dontAnimate() 
        .diskCacheStrategy(DiskCacheStrategy.RESULT) 
        .into(viewHolder.ivAdChoicesIcon); 
     } catch (NullPointerException e) { 
      e.printStackTrace(); 
     } 

     viewHolder.tvTitle.setText(nativeAd.getAdTitle()); 
     viewHolder.tvSocialContext.setText(nativeAd.getAdSocialContext()); 
     viewHolder.tvAdBody.setText(nativeAd.getAdBody()); 
     viewHolder.tvCTA.setText(nativeAd.getAdCallToAction()); 

     // Register the Title & CTA button to listen for clicks 
     List<View> clickableViews = new ArrayList<>(); 
     clickableViews.add(viewHolder.tvTitle); 
     clickableViews.add(viewHolder.tvCTA); 
     nativeAd.registerViewForInteraction(viewHolder.cvContent, clickableViews); 

     Log.i(TAG, "Title: " + nativeAd.getAdTitle()); 
     Log.i(TAG, "Description: " + nativeAd.getAdBody()); 
     Log.i(TAG, "Subtitle: " + nativeAd.getAdSubtitle()); 
     Log.i(TAG, "Image: " + nativeAd.getAdCoverImage().getUrl()); 
     Log.i(TAG, "Destination URL: " + nativeAd.getAdChoicesLinkUrl()); 
    } 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/cv_content" 
     android:layout_width="300dp" 
     android:layout_height="250dp" 
     android:layout_margin="5dp" 
     android:elevation="20dp" 
     app:cardCornerRadius="10dp"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <com.facebook.ads.MediaView 
       android:id="@+id/mv_ad_picture" 
       android:layout_width="match_parent" 
       android:layout_height="155dp" 
       android:background="@color/weak_tint_profile" /> 

      <ImageView 
       android:id="@+id/iv_adchoices_icon" 
       android:layout_width="15dp" 
       android:layout_height="15dp" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentTop="true" 
       android:layout_margin="10dp" 
       android:background="@color/transparent" /> 

      <ImageView 
       android:id="@+id/iv_ad_icon" 
       android:layout_width="50dp" 
       android:layout_height="50dp" 
       android:layout_below="@id/mv_ad_picture" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="10dp" 
       android:background="@color/transparent" 
       android:scaleType="centerCrop" /> 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="70dp" 
       android:layout_alignBottom="@id/iv_ad_icon" 
       android:layout_alignTop="@id/iv_ad_icon" 
       android:layout_toRightOf="@id/iv_ad_icon"> 

       <LinearLayout 
        android:id="@+id/ll_ad_header" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_toLeftOf="@+id/ll_cta" 
        android:gravity="center_vertical" 
        android:orientation="vertical"> 

        <TextView 
         android:id="@+id/tv_ad_title" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:ellipsize="end" 
         android:maxLines="2" 
         android:text="Ad Title" 
         android:textSize="14sp" 
         android:textStyle="bold" /> 

        <TextView 
         android:id="@+id/tv_social_context" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:ellipsize="end" 
         android:maxLines="1" 
         android:text="Social Context" 
         android:textColor="@color/secondary_text" 
         android:textSize="10sp" /> 
       </LinearLayout> 

       <LinearLayout 
        android:id="@+id/ll_cta" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_centerVertical="true" 
        android:layout_marginBottom="10dp" 
        android:layout_marginLeft="10dp" 
        android:layout_marginRight="10dp" 
        android:background="@drawable/modern_btn_primary"> 

        <TextView 
         android:id="@+id/tv_cta" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:gravity="center" 
         android:paddingBottom="5dp" 
         android:paddingLeft="10dp" 
         android:paddingRight="10dp" 
         android:paddingTop="5dp" 
         android:text="CTA Button" 
         android:textColor="@color/white" 
         android:textSize="12sp" 
         android:textStyle="bold" /> 

       </LinearLayout> 

      </RelativeLayout> 

      <TextView 
       android:id="@+id/tv_ad_body" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_below="@+id/iv_ad_icon" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:ellipsize="end" 
       android:gravity="center_vertical" 
       android:maxLines="1" 
       android:text="Ad Body" 
       android:textColor="@color/text_on_alpha" 
       android:textSize="12sp" /> 

     </RelativeLayout> 

    </android.support.v7.widget.CardView> 

</RelativeLayout> 

Fatal Exception: android.view.InflateException: Binary XML file line #19: Binary XML file line #19: Error inflating class com.facebook.ads.MediaView 

Caused by android.view.InflateException: Binary XML file line #19: Error inflating class com.facebook.ads.MediaView 

Caused by java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Constructor.newInstance0(Constructor.java) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:430) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:652) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:865) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:873) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:873) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:525) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
     at worka.biz.worka.adapter.BulletinsRecommendedAdapter.onCreateViewHolder(Unknown Source) 
     at worka.biz.worka.adapter.BulletinsRecommendedAdapter.onCreateViewHolder(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Recycler.clear(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Recycler.clear(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Recycler.getScrapList(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager$LayoutState.hasMore(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager.generateDefaultLayoutParams(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager.generateDefaultLayoutParams(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager.onSaveInstanceState(Unknown Source) 
     at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(Unknown Source) 
     at android.support.v7.widget.RecyclerView.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:2249) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.widget.ScrollView.onMeasure(ScrollView.java:543) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.support.design.widget.CoordinatorLayout.releaseTempRect(Unknown Source) 
     at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(Unknown Source) 
     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.layoutDependsOn(Unknown Source) 
     at android.support.design.widget.CoordinatorLayout.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.support.v4.widget.DrawerLayout.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.support.v7.widget.ContentFrameLayout.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at com.android.internal.policy.DecorView.onMeasure(DecorView.java:872) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2625) 
     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1677) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1928) 
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1550) 
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7190) 
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:959) 
     at android.view.Choreographer.doCallbacks(Choreographer.java:734) 
     at android.view.Choreographer.doFrame(Choreographer.java:670) 
     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:945) 
     at android.os.Handler.handleCallback(Handler.java:751) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6776) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) 
Caused by java.lang.UnsupportedOperationException: TextureView doesn't support displaying a background drawable 
     at android.view.TextureView.setBackgroundDrawable(TextureView.java:315) 
     at android.view.View.setBackground(View.java:19498) 
     at android.view.View.(View.java) 
     at android.view.View.(View.java) 
     at android.view.View.(View.java) 
     at android.view.TextureView.(TextureView.java) 
     at com.facebook.ads.internal.view.d.c.b.(Unknown Source) 
     at com.facebook.ads.internal.view.o.(Unknown Source) 
     at com.facebook.ads.internal.view.j.(Unknown Source) 
     at com.facebook.ads.MediaViewVideoRenderer.(Unknown Source) 
     at com.facebook.ads.internal.view.h.(Unknown Source) 
     at com.facebook.ads.MediaView.(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance0(Constructor.java) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:430) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:652) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:865) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:873) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:873) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:525) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
     at worka.biz.worka.adapter.BulletinsRecommendedAdapter.onCreateViewHolder(Unknown Source) 
     at worka.biz.worka.adapter.BulletinsRecommendedAdapter.onCreateViewHolder(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Recycler.clear(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Recycler.clear(Unknown Source) 
     at android.support.v7.widget.RecyclerView$Recycler.getScrapList(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager$LayoutState.hasMore(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager.generateDefaultLayoutParams(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager.generateDefaultLayoutParams(Unknown Source) 
     at android.support.v7.widget.LinearLayoutManager.onSaveInstanceState(Unknown Source) 
     at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(Unknown Source) 
     at android.support.v7.widget.RecyclerView.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:2249) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.widget.ScrollView.onMeasure(ScrollView.java:543) 
     at android.view.View.measure(View.java:21121) 
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.support.design.widget.CoordinatorLayout.releaseTempRect(Unknown Source) 
     at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(Unknown Source) 
     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.layoutDependsOn(Unknown Source) 
     at android.support.design.widget.CoordinatorLayout.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.support.v4.widget.DrawerLayout.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.support.v7.widget.ContentFrameLayout.onMeasure(Unknown Source) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at com.android.internal.policy.DecorView.onMeasure(DecorView.java:872) 
     at android.view.View.measure(View.java:21121) 
     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2625) 
     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1677) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1928) 
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1550) 
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7190) 
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:959) 
     at android.view.Choreographer.doCallbacks(Choreographer.java:734) 
     at android.view.Choreographer.doFrame(Choreographer.java:670) 
     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:945) 
     at android.os.Handler.handleCallback(Handler.java:751) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6776) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) 
+0

'targetSdkVersion'도 변경 했습니까? 'TextureView는 배경 드로잉 디스플레이를 지원하지 않습니다 .' 오류는 Android N (api 24)에 나타납니다. – pleft

+0

@pleft 오류가 발생하면 targetSdkVersion을 25에서 26로 업데이트했습니다. 다른 줄은 Google에서 사용할 수있는 최신 버전을 반영하기 위해 gradle 파일에서 영향을받습니다. 그렇지만 현재 영향을받는 유일한 장치는 API 24입니다. –

+0

안녕하세요, xiaomi 기기에서 비슷한 문제가 발생했습니다. 이 문제와 관련하여 해결책을 찾았습니까? – Sarun1001

답변

0

문제를 해결하려면, 당신은 추가해야합니다

compile 'com.android.support:support-v4:*.*.*' 
compile 'com.android.support:recyclerview-v7:*.*.*' 

그것은 sdk 버전과 관련이 없습니다.

관련 문제