思路:官文是采用在项目基础上生成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 Studio】eclipse项目导入Android Studio
  2. Android伸手党系列之四:Android项目开发常用技术
  3. 修改 Android 系统默认语言版本
  4. 查看当前android设备api版本
  5. [Android] 如何取得版本号码
  6. android 项目收获02
  7. android滑动删除的一个开源项目SwipeDelMenuLayout的简单使用
  8. Android Q 版本新的网络状况判断方式
  9. ndk 历史版本下载

随机推荐

  1. Android Studio打包Signed APK 碰到的一
  2. Android图片压缩及内存缓存
  3. Android开发小技巧
  4. Android之ListActivity(一):布局与数据绑定
  5. 教你用电脑从 Google Play 下载 Android(
  6. 关于Android(安卓)Force Close 出现的原
  7. Android Binder 机制详解
  8. Android 开发中常用到的设计模式
  9. android竖向进度条简单实现
  10. Android超精准计步器开发-Dylan计步