
1.首先集成的项目目录
我使用的是直接依照react-native init Project 的格式来导入的,也就是说,我的AndroID项目目录是跟node_modules是在1个目录下的。
我们init完项目以后,项目初始化完成了,这时候候我们可以用命令react-native run-androID直接运行项目,至于怎样调试,之前已说过。
说1下我们怎样开发和运行分开吧,我们开发1般会选择webstrom,开发后我们会AndroID和ios的编译分开。
启动npm
下面说1下androID 嵌入RN环境吧。
编写AndroID原生代码,用来调用RN
package com.reactdemo;import androID.os.Bundle;import androID.support.v7.app.AppCompatActivity;import androID.vIEw.KeyEvent;import com.facebook.react.lifecycleState;import com.facebook.react.ReactInstanceManager;import com.facebook.react.ReactRootVIEw;import com.facebook.react.modules.core.DefaultHarDWareBackBtnHandler;import com.facebook.react.shell.MainReactPackage;public class MainActivity extends AppCompatActivity implements DefaultHarDWareBackBtnHandler { private ReactInstanceManager mReactInstanceManager; private ReactRootVIEw mReactRootVIEw; @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,"ReactDemo",null); setContentVIEw(mReactRootVIEw); } @OverrIDe public boolean onKeyUp(int keyCode,KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU && mReactInstanceManager != null) { mReactInstanceManager.showDevOptionsDialog(); return true; } return super.onKeyUp(keyCode,event); } @OverrIDe public voID onBackpressed() { if (mReactInstanceManager != null) { mReactInstanceManager.onBackpressed(); } else { super.onBackpressed(); } } @OverrIDe public voID invokeDefaultOnBackpressed() { super.onBackpressed(); } @OverrIDe protected voID onPause() { super.onPause(); if (mReactInstanceManager != null) { mReactInstanceManager.onHostPause(); } } @OverrIDe protected voID onResume() { super.onResume(); if (mReactInstanceManager != null) { mReactInstanceManager.onHostResume(this,this); } }}注意要加上网络等1些权限。
创建package.Json,添加react native包
使用命令npm init,随着步骤走就行了,给大家截个图:
最后你就能够在你的RN项目里面看到1个package.Json。
运行Demo
注:可能会出现java.lang.RuntimeException: Could not get BatchedBrIDge,make sure your bundle is packaged correctly这个毛病,
react-native bundle —platform androID —dev false —entry-file index.androID.Js —bundle-output ReactDemo/app/src/main/assets/index.androID.bundle —sourcemap-outpu ReactDemo/app/src/main/assets/index.androID.map —assets-dest ReactDemo/app/src/main/res/
以上是内存溢出为你收集整理的Android原生嵌入React Native全部内容,希望文章能够帮你解决Android原生嵌入React Native所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)