Javascript 在react native中创建UI组件时出错
我正在尝试用google创建一个react本地UI组件 但是,当应用程序呈现时,没有显示广告,当检查android logcat时,我注意到以下消息: W/未知:ViewManagerPropertyUpdater(21182):找不到生成的 com.adx.AdxViewManager类的setter 有人知道我哪里出错了吗 为了便于理解,我将我的代码放在我如何开发这个组件的下面 MainApplication.java index.android.jsJavascript 在react native中创建UI组件时出错,javascript,android,react-native,react-native-android,google-ad-exchange,Javascript,Android,React Native,React Native Android,Google Ad Exchange,我正在尝试用google创建一个react本地UI组件 但是,当应用程序呈现时,没有显示广告,当检查android logcat时,我注意到以下消息: W/未知:ViewManagerPropertyUpdater(21182):找不到生成的 com.adx.AdxViewManager类的setter 有人知道我哪里出错了吗 为了便于理解,我将我的代码放在我如何开发这个组件的下面 MainApplication.java index.android.js import React,{Compo
import React,{Component}来自'React';
从“/AdxBanner”导入AdxBanner;
从“react native”导入{AppRegistry,StyleSheet,Text,View};
导出默认类Adx扩展组件{
render(){
返回(
欢迎来到这里!
要开始,请编辑index.android.js
);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“#F5FCFF”,
},
欢迎:{
尺寸:20,
textAlign:'中心',
差额:10,
},
说明:{
textAlign:'中心',
颜色:'#333333',
marginBottom:5,
},
});
AppRegistry.registerComponent('Adx',()=>Adx);
package com.adx;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new AdxPackage()
);
}
};
package com.adx;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.Collections;
import java.util.List;
public class AdxPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.<ViewManager>singletonList(
new AdxViewManager()
);
}
}
package com.adx;
import android.util.Log;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class AdxViewManager extends SimpleViewManager<AdView> {
public static final String REACT_CLASS = "AdxBanner";
@Override
public String getName() {
return REACT_CLASS;
}
@Override
protected AdView createViewInstance(ThemedReactContext reactContext) {
AdView adView = new AdView(reactContext);
return adView;
}
@ReactProp(name = "adUnit")
public void setAdUnit(AdView adView, String adUnit) {
adView.setAdUnitId(adUnit);
}
@ReactProp(name = "size")
public void setSize(AdView adView, String size) {
Log.d(size, "setSize: ");
adView.setAdSize(AdSize.BANNER);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
Log.d("Adx", "createViewInstance: OK");
}
}
import React from "react";
import PropTypes from "prop-types";
import { requireNativeComponent, View } from 'react-native';
var iface = { name: 'AdxBanner'}.propTypes = { ...View.propTypes }
module.exports = requireNativeComponent('AdxBanner', iface);
import React, { Component } from 'react';
import AdxBanner from "./AdxBanner";
import { AppRegistry, StyleSheet, Text, View } from 'react-native';
export default class Adx extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.android.js
</Text>
<AdxBanner
size="BANNER"
adUnit="ca-app-pub-3940256099942544/6300978111"
style={{height: 400, width: 400}}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
AppRegistry.registerComponent('Adx', () => Adx);