java.lang.String - реклама в Facebook - PullRequest
1 голос
/ 03 июля 2019

Я использую рекламу на Facebook. Я хотел добавить нативную рекламу в свое приложение «Нейшнл Экспо», но я получил ошибку. Когда я ставлю простой баннер, все в порядке. Это дает мне эту ошибку: Uncaught Ошибка: java.lang.String не может быть приведен к java.lang.Double Я пытался импортировать так: импортировать * как FacebookAds из 'expo-ads-facebook'; но это дало мне эту ошибку: Невозможно разрешить "@ unimodules / core" из "node_modules / expo-ads-facebook / build / withNativeAd.js"

Что я делаю не так?

// pageScreen.js
import React from 'react';

import { FacebookAds } from 'expo'

import AdScreenFacebook from './AdScreenFacebook'

class AdScreen extends React.Component {
  render () {
          return (

             <AdScreenFacebook adsManager={adsManager} adChoicePosition="topLeft" expandable={false} />

          );
      }

 }

// AdScreenFacebook.js

import React from 'react';

import { FacebookAds } from 'expo'
const { AdIconView, AdMediaView } = FacebookAds;

const adsManager = new FacebookAds.NativeAdsManager("2272791379702600_2272795453035526", "1");

class AdScreenFacebook extends React.Component {
  render () {
          return (
      <View>
        <AdMediaView />
        <AdTriggerView>
          <Text>{this.props.nativeAd.bodyText}</Text>
        </AdTriggerView>
      </View>
    );
      }

 }


export default FacebookAds.withNativeAd(AdScreenFacebook);







  export default createStackNavigator(
    {
      Main: {
        screen: AdScreen,
      },
      AdScreenFacebook: {
        screen: AdScreenFacebook,
      }
    },
    {
      initialRouteName: 'Main',
    }
  );

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

С SDK 33 мы исключаем импорт большинства модулей из expo package. Это означает, что в будущем выпуске вы не сможете написать, например, import { FacebookAds } from 'expo';. Скорее вам нужно будет установить отдельные пакеты для каждого модуля, который вы используете, и вместо этого импортировать из них.

Вы можете использовать новую команду expo install для установки модулей; эта команда является оболочкой npm install/yarn add, которая автоматически устанавливает версию модуля, совместимую с вашей версией SDK. Например, для FacebookAds module вы должны выполнить expo install expo-ads-facebook, а затем использовать import * as FacebookAds from 'expo-ads-facebook';. Это изменение открывает путь для встряхивания деревьев и меньших пакетов JavaScript. Это также упрощает перемещение между управляемым и пустым рабочими процессами.

Если вы хотите использовать модуль Expo, например, вопрос, установите его и настройте его.

Для управляемых приложений вам необходимо запустить expo install expo-ads-facebook. Чтобы использовать его в голом приложении React Native, следуйте его инструкциям по установке .

Использование

import * as FacebookAds from 'expo-ads-facebook';
const { AdTriggerView, AdMediaView } = FacebookAds;

class AdComponent extends React.Component {
  render() {
    return (
      <View>
        <AdMediaView />
        <AdTriggerView>
          <Text>{this.props.nativeAd.bodyText}</Text>
        </AdTriggerView>
      </View>
    );
  }
}

export default FacebookAds.withNativeAd(AdComponent);
0 голосов
/ 04 июля 2019

Удалите кавычки из числа 1 в функции NativeAdsManager. В настоящее время вы передаете эту функцию число 1 как строку, а не как число.

// AdScreenFacebook.js

const adsManager = new FacebookAds.NativeAdsManager("2272791379702600_2272795453035526", 1); 
...