3

J'ai intégré Facebook Audience Network sur mon application Android pendant un moment et jusqu'à présent, je n'ai reçu aucun problème.Erreur lors du gonflement de la classe com.facebook.ads.MediaView

Récemment, j'ai mis à jour l'appel d'API Facebook de la version 2.5 vers la version 3.0 et j'ai commencé à obtenir ces rapports sur mon Crashlytic. Cela fonctionne avant mais plus après la mise à jour. Je peux essayer de revenir à la version 2.5 et voir si la situation s'améliore mais je ne fais que mettre ceci dans l'espoir que d'autres personnes confrontées à un problème similaire peuvent offrir des réponses à ce problème.

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

Avez-vous également modifié votre 'targetSdkVersion'? Parce que 'TextureView ne supporte pas l'affichage d'une erreur drawable d'arrière-plan qui est la racine de votre problème apparaît sur Android N (api 24) – pleft

+0

@pleft Suite à l'erreur, j'ai mis à jour le targetSdkVersion à 26 de 25 ... et le long avec les autres lignes affectées sur le fichier gradle pour refléter la dernière révision disponible sur Google. Mais oui, les seuls appareils à être affectés sont sur API 24 pour le moment. –

+0

Salut, je suis confronté au même problème sur les appareils Xiaomi. avez-vous trouvé une solution à ce problème? – Sarun1001

Répondre

0

Pour résoudre le problème, vous devez ajouter

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

Cela n'a rien à voir avec la version sdk.