思路:官文是采用在项目基础上生成React结构,但问题颇多并不靠谱。生成React-Native项目然后替换android包更方便快捷。当前转换基于0.48版本。

新建项目

react-native init xxx

替换项目

删除RN项目下android文件夹,将原生项目复制到RN项目路径下,并改名为android

配置settings.gradle

在最上方添加

rootProject.name = '项目名'

项目build.gradle中添加maven依赖

allprojects {    repositories {        jcenter()        mavenLocal()        maven {            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm            url "$rootDir/../node_modules/react-native/android"        }    }}

gradle版本设置(可选)

设置gradle版本为4.3保证编译效率

路径gradle\wrapper\gradle-wrapper.properties

distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip

项目的build.gradle设置

设置gradle的tools版本为3.0.0与gradle版本相呼应

buildscript {    repositories {        jcenter()        google()    }    dependencies {        classpath 'com.android.tools.build:gradle:3.0.0'    }}

编译环境设置

项目module中设置编译版本

使用gradle4.3必须要将buildToolsVersion升级为26以上

compileSdkVersion 25buildToolsVersion "26.0.2"

app的build.gradle增加ndk限制

defaultConfig {    ...    ndk {    abiFilters "armeabi-v7a", "x86"    }}

app的build.gradle增加依赖

dependencies {    ...    compile "com.facebook.react:react-native:+"  // From node_modules    ...}

Application配置

需要注意的是0.48正式版新增了一个getJSMainModuleName方法来定位主模块入口

public class App extends Application implements ReactApplication{    private static App mApp;    public static App getInstance() {        return mApp;    }    @Override    public void onCreate() {        super.onCreate();        mApp = this;        //react-native        SoLoader.init(this, /* native exopackage */ false);    }    //初始化react-native    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {        @Override        public boolean getUseDeveloperSupport() {            return BuildConfig.DEBUG;        }        @Override        protected List getPackages() {            return Arrays.asList(                    new MainReactPackage(),            );        }        @Override        protected String getJSMainModuleName() {            return "index";        }    };    @Override    public ReactNativeHost getReactNativeHost() {        return mReactNativeHost;    }}

测试Activity设置

注意,一定要在根目录进行

public class MainActivity extends ReactActivity {    @Override    protected String getMainComponentName() {        return "Yuwen";    }}

Manifest.xml配置

                                                                                                                                                    

运行

所有设置配置好后在根目录下执行指令react-native run-android就能运行了~

更多相关文章

  1. Android_TextView属性XML详解
  2. 利用HTML5开发Android
  3. Android伸手党系列之四:Android项目开发常用技术
  4. 【Android(安卓)Studio】eclipse项目导入Android(安卓)Studio
  5. Android(安卓)App Ant打包
  6. Android:TextView属性大全
  7. 《Android经验分享》周刊第8期
  8. Android(安卓)Studio快捷键设置成跟Eclipse一样
  9. 如何实现android清理后台时,自己的软件不被清理

随机推荐

  1. android的android:taskAffinity
  2. AdapterViewFlipper
  3. android webview学习总结
  4. android 开发者资源下载地址记录(转+补充)
  5. android核心知识点学习资料
  6. Android事件处理分析+Android事件处理 +A
  7. 系出名门Android(6) - 控件(View)之DateP
  8. android学习之RelativeLayout
  9. Android(安卓)TextView跑马灯效果
  10. Android——全屏显示的两种方式