在Windows上将ReactNative集成到现有的Android项目

React Natvie的官方文档的 Integrating with Existing Apps 已经很详细地教我们如何将React Natvie集成到现在的Android项目。我根据官方文档的步骤,在Windows上将React Native集成到现有的Android的过程记录下来。

集成到Android项目的要求:

首先,创建一个Android的项目(这里用来模拟现有的Andorid项目)

在现有的Android的build.gradle文件中增加React Natvie的依赖

点击Maven Central 查看React Natvie的最新版本,这里的最新版本已经是0.18.0了。

在build.gradle文件中加入 compile ‘com.facebook.react:react-native:0.18.+‘  。

在AndroidManifest.xml加入访问网络的权限

<uses-permission android:name="android.permission.INTERNET" />
 
 
将下面的代码复制到项目中(记得在AndroidManifest.xml注册该类)
public class MyReactActivity extends Activity implements DefaultHardwareBackBtnHandler {

    public static void launch(Activity activity){
        Intent intent = new Intent(activity, MyReactActivity.class);
        activity.startActivity(intent);
    }

    private ReactRootView mReactRootView;
    private ReactInstanceManager mReactInstanceManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mReactRootView = new ReactRootView(this);
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModuleName("index.android")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();
        mReactRootView.startReactApplication(mReactInstanceManager, "MyAwesomeApp", null);

        setContentView(mReactRootView);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (mReactInstanceManager != null) {
            mReactInstanceManager.onResume(this, this);
        }
    }

    @Override
    protected void onPause() {
        super.onPause();

        if (mReactInstanceManager != null) {
            mReactInstanceManager.onPause();
        }
    }

    @Override
    public void invokeDefaultOnBackPressed() {
        super.onBackPressed();
    }

    @Override
    public void onBackPressed() {
        if (mReactInstanceManager != null) {
            mReactInstanceManager.onBackPressed();
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU && mReactInstanceManager != null) {
            mReactInstanceManager.showDevOptionsDialog();
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }
}
接下来,就要将JS增加到现有的项目
 
在项目的根目录打开命令行(切换到根目录,按住Shift,右击就会出现‘在此处打开命令窗口’)
 
输入npm init,居然弹这些玩意出来(靠),一开始我以为出错了,后来是才知道是填东西的(生成package.json这个文件的)
机智的我在name那里输入了括号后面的文字,弹出下面的错误(不能够大写的),然后将括号的文字全部输入小写就可以了。
 
基本按括号后面的提示填就可以了,最后就在项目的根目录生成package.json这个文件。
 
最后提示Is this ok? 输入yes
 
 
然后,输入npm install --save react-native
这里需要等待……
 
下载完了
 
接下来,输入curl -o .flowconfig https://raw.githubusercontent.com/facebook/react-native/master/.flowconfig
回车居然弹出curl不是内部命令。(百度一查curl是Linux系统的小工具的用来下载文件的,Windows没有这个工具)
 
这里我们分析一下这个命令的作用。从https://raw.githubusercontent.com/facebook/react-native/master/.flowconfig下载文件并且文件名为.flowconfig。
 
那我们就用其他的下载工具下载这个文件放到根目录不就可以了吗。(不用执行上面那个命令)
这里我用360极速浏览器新建下载任务将链接复制到下载任务那里。(记住文件为.flowconfig)
 
下载后放到根目录下
 
可能有人会问不能从其他的项目.flowconfig复制过来么?理论上是可以的,左边是其他项目的,右边是刚下载,在文件的最下面可以看出版本不一样了。所以建议下载最新.flowconfig文件。
 
 
接着,输入react-native start启动服务,发现报错了(package.json解析不了)。
 
打开package.json将test这行删掉,然后保存。
 
再运行react-native start,可以看到服务已启动,端口为8081。
 
在浏览器输入地址:http://localhost:8081/index.android.bundle?platform=android
如果可以打开,则证明服务无问题了。
 
最后输入gradlew installDebug命令运行项目。
 
我的现有项目的minSdkVersion为15,而react natvie的0.18.0版本需要minSdkVersion为16.这里将minSdkVersion修改为16后再运行。
 
 编译成功了。
(如果用真机调试可以先阅读上一篇文章)

 
 
时间: 2024-08-10 17:01:24

在Windows上将ReactNative集成到现有的Android项目的相关文章

React Native—集成到原生Android项目

目前的react-native版本是0.57.8,參考了一些文章之後,終於集成好了.React Native環境的搭建我就不説了,詳細的可以參考React Native中文網的搭建文檔. 創建新的Android工程 環境配置好之後(sdk下載可能比較慢),用Android Studio創建一個Empty Activity的項目. 集成React Native 安裝相關依賴 在項目根目錄下執行 npm init 命令,生成 package.json 文件.此時要注意一下package name和入

Unity 3D:在现有的Android游戏场景中显示AdMob的横幅

关于如何在现有的Android项目现场显示AdMob的横幅,在一个Android项目中使用一个简单的Android JAR文件似乎不是一个简单的事情.我终于设法让AdMob在现有工作统一安卓游戏.对于本例,我使用统一为Windows版本3.5.2和最新的Eclipse为Android插件. 先决条件我假设您有一个工作在你的电脑上安装Android的Eclipse插件.如果没有,请按照本教程准备工作区: https://github.com/unity-plugins/Unity-Admob. E

birt 集成到现有的web应用中

 我们已经有了一个Javaweb应用,现在要实现对报表的集成 我的应用是这个样子的  说明: 1)  这里使用的是birt4.4版本的, 下载birt-runtime-4.4.zip(在官方下载),然后将birt.war解压,可以看到 logs report scriptlib webcontent WEB-INF **.jsp **.rptdesign 这些文件及文件夹 2) 将 WEB_INF下的内容放到我们自己的web应用的WEB-INF相应的目录下,将它的web.xml与我们应用的web

居于集成了adt的Android 开发环境配置

一.先说一下环境 Windows 8.1 64 位 注:win7 Ultimate  64 配置会出现 Android SDK manger 不能启动的问题,是因为android.bat 里调用了find_java.bat ,而find_java.bat 在win7 64 位下的调用位置有 问题,楼主按照网上的方法,直接写死路径,控制台下调用成功,虚拟机也可以 启动但是没法创建虚拟机,所有的选项都选好了但是点击Ok没反应,好像不是 不止楼主有这问题.后来要维护一个win8的项目,就装了win8

React Native集成到Android项目当中

集成到Android项目当中 安装JavaScript依赖包 在项目根目录下创建一个名为package.json的空文本文件,然后填入以下内 { "name": "MyReactNativeApp", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/r

Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html Android SDK:http://developer.android.com/sdk/index.html ADT:

Java的进化? Kotlin初探与集成Android项目

欢迎Follow我的GitHub, 关注我的CSDN. Kotlin是基于JVM的编程语言, 由JetBrains公司开发, 目前已经开源. IntelliJ IDEA, PyCharm, Android Studio等IDE, 就是出自于JetBrains公司. 介绍: Statically typed programming language for the JVM, Android and the browser. 100% interoperable with Java? 用于JVM,

React-Native 开发(一) Android环境部署,Hello react-native

前提: 一个小web前端,完全不会android 跟iOS 的开发,首次接触,有很多不懂的问题.请见谅 环境: win7 成果:                           一.SDK安装 提示: 安装需通过代理,不然会很慢哟~~ 安装 android studio 安装2.0的版本 在studio中安装以下SDK 添加环境变量(变量值为sdk路径): 二.全局 react-native 安装 npm install -g react-native-cli 三.测试安装 选一个文件夹,在

SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载 这篇博文我们通过spring与Mybatis集成,开发一个简单用户增删改查的Web项目. 基本准备工作 1.安装JDK1.6以上版本,安装与配置 2.下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis/ 3.下载mybatis-spring-1.2.1版:https://repo1.maven.org/maven2/org/m