Следующие классы не могут быть созданы: - 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();
...
}
Любая идея?