Следующие классы не могут быть созданы: - com.facebook.ads.MediaView

Я пытаюсь включить в свое приложение сеть аудитории Facebook. Но когда я запускаю свое приложение, оно вылетает. Я смотрю в контейнере

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/native_ad_unit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:orientation="vertical"
    android:paddingStart="10dp"
    android:paddingEnd="10dp">
    <LinearLayout
        android:id="@+id/ll_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="10dp"
        android:paddingTop="10dp">
        <ImageView
            android:id="@+id/native_ad_icon"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_gravity="center_vertical"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="5dp"
            android:paddingRight="1dp">
            <TextView
                android:id="@+id/native_ad_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:maxLines="2"
                android:textColor="@android:color/black"
                android:textSize="15sp"/>
            <TextView
                android:id="@+id/sponsored_label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:lines="1"
                android:text="@string/sponsored"
                android:textColor="@android:color/darker_gray"
                android:textSize="12sp"/>
        </LinearLayout>
        <LinearLayout
            android:id="@+id/ad_choices_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:orientation="horizontal"/>
    </LinearLayout>
    <com.facebook.ads.MediaView
        android:id="@+id/native_ad_media"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:contentDescription="" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:orientation="vertical"
            android:paddingLeft="1dp"
            android:paddingRight="10dp">
            <TextView
                android:id="@+id/native_ad_social_context"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:gravity="center_vertical"
                android:lines="2"
                android:paddingLeft="1dp"
                android:paddingRight="5dp"
                android:textColor="@android:color/darker_gray"
                android:textSize="12sp"/>
            <TextView
                android:id="@+id/native_ad_body"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:gravity="center_vertical"
                android:lines="2"
                android:textColor="@android:color/black"
                android:textSize="12sp"/>
        </LinearLayout>
        <Button
            android:id="@+id/native_ad_call_to_action"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="#4286F4"
            android:gravity="center"
            android:paddingStart="3dp"
            android:paddingEnd="3dp"
            android:textColor="@android:color/white"
            android:textSize="13sp"/>
    </LinearLayout>
</LinearLayout>

Следующие классы не могут быть созданы: - com.facebook.ads.MediaView (Открытый класс, Показать исключение, Очистить кэш)

    Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE.  If this is an unexpected error you can also try to build the project, then manually refresh the layout.

Детали исключения:

java.lang.UnsupportedOperationException: Неподдерживаемая служба: подключение по адресу com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:627) по адресу com.facebook.ads.internal.he (неизвестный источник) в com.facebook. ads.internal.hg (неизвестный источник) на com.facebook.ads.internal.hga (неизвестный источник) на com.facebook.ads.MediaView.getAdEventManager(неизвестный источник) на com.facebook.ads.MediaView.setVideoRenderer(неизвестный источник) в com.facebook.ads.MediaView.(Неизвестный источник) в sun.reflect.NativeConstructorAccessorImpl.newInstance0(родной метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62d. DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance(Constructor.java:423) в org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:475) в org.jet.jet.ViewLoader.loadClass(ViewLoader.java:262) в org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:220) в com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:186) в android.view.BridgeInflater.loadterCustomView: BridgeIn 334) на android.view.BridgeInflater.loadCustomView(BridgeInflater.java:345) на android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:245) на android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) на и view. (LayoutInflater.java:821) в android.view.LayoutInflater.inflate(LayoutInflater.java:518) в android.view.LayoutInflater.inflate(LayoutInflater.java:397) в com.android.layoutlib.bridge.impl.RenderSessionImpl. раздувать (RenderSessionImpl.java:324) на com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) на com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368) на com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask. Java:567) на com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549) на com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863) на com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549) в com.android.tools.idea.rendering.RenderTask.lambda$ накачать $1(RenderTask.java:680) в java.util.concurrent.Futurekas.run(FutureTask.java:266) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java.6lan: 6) Thread.run(Thread.java:745)

Вот код в действии:

    private void showNativeAd() {
    nativeAd = new NativeAd(this.getContext(), "301459163304646_1543340582449825");
    nativeAd.setAdListener(new AdListener() {

        @Override
        public void onError(Ad ad, AdError error) {
            // Ad error callback
            Toast.makeText(NewsFeedFragment.this.getActivity(),
                    "Error: " + error.getErrorMessage(), Toast.LENGTH_LONG).show();
        }

        @Override
        public void onAdLoaded(Ad ad) {
            if (nativeAd != null) {
                nativeAd.unregisterView();
            }
            // Add ad into the ad container.
            adContainer = (LinearLayout) getView().findViewById(R.id.container_native_ad);
            LayoutInflater inflater = LayoutInflater.from(NewsFeedFragment.this.getContext());
            adView = (LinearLayout)inflater.inflate(R.layout.native_ad_container, adContainer, false);
            adContainer.addView(adView);
            // Create native UI using the ad metadata.
            ImageView nativeAdIcon = (ImageView)adView.findViewById(R.id.native_ad_icon);
            TextView nativeAdTitle = (TextView)adView.findViewById(R.id.native_ad_title);
            TextView nativeAdBody = (TextView)adView.findViewById(R.id.native_ad_body);
            com.facebook.ads.MediaView nativeAdMedia = (MediaView)adView.findViewById(R.id.native_ad_media);
            //nativeAdMedia = new MediaView(NewsFeedFragment.this.getContext());
            TextView nativeAdSocialContext = (TextView)adView.findViewById(R.id.native_ad_social_context);
            Button nativeAdCallToAction = (Button)adView.findViewById(R.id.native_ad_call_to_action);
            // Setting the Text.
            nativeAdSocialContext.setText(nativeAd.getAdSocialContext());
            nativeAdCallToAction.setText(nativeAd.getAdCallToAction());
            nativeAdTitle.setText(nativeAd.getAdTitle());
            nativeAdBody.setText(nativeAd.getAdBody());
            // Downloading and setting the ad icon.
            NativeAd.Image adIcon = nativeAd.getAdIcon();
            NativeAd.downloadAndDisplayImage(adIcon, nativeAdIcon);
            // Download and setting the cover image.
            NativeAd.Image adCoverImage = nativeAd.getAdCoverImage();
            nativeAdMedia.setNativeAd(nativeAd);
            // Add adChoices icon
            AdChoicesView adChoicesView = new AdChoicesView(NewsFeedFragment.this.getContext(), nativeAd, true);
            adView.addView(adChoicesView, 0);
            // Register the Title and CTA button to listen for clicks AND MEDIA
            List<View> clickableViews = new ArrayList<>();
            clickableViews.add(nativeAdTitle);
            clickableViews.add(nativeAdCallToAction);
            clickableViews.add(nativeAdMedia);
            nativeAd.registerViewForInteraction(adView, clickableViews);
        }

        @Override
        public void onAdClicked(Ad ad) {
            // Ad clicked callback
        }

        @Override
        public void onLoggingImpression(Ad ad) {
            // Ad impression logged callback
        }
    });
    // Request an ad
    //nativeAd.loadAd();
    nativeAd.loadAd(NativeAd.MediaCacheFlag.ALL);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    showNativeAd();
    ...
}

Любая идея?

0 ответов

Другие вопросы по тегам