使用React Native的Android库项目
我目前正在努力与原生反应。 我想要的是一个基于反应原生的图书馆项目,然后我可以在我的一些应用程序中加入这个项目。
我尝试的第一件事是将所有基本的反应设置代码[1]移到现有应用程序中的片段中。 这工作没有任何问题。
然后,我开始了一个全新的Android项目,其中包含一个空的Activity。 在这个项目中,我添加了一个新的Android库项目模块,它应该包含“反应原生片段”。 然后,我在我的根项目文件夹中初始化了反应原生项目。
我目前的项目结构如下所示:
ReactApplication
- basic files (index.android.js, index.ios.js, package.json, build.gradle, settings.gradle)
- app/ (contains the real native android app which includes the "react native fragment")
- reactlib/ (library project which contains a fragment with the code from [1])
- ios/
- node_modules/ (contains react-native)
通过npm start
开发服务器可以毫无问题地工作,但只要我启动Android应用程序,我就可以得到下面的logcat输出:
W/unknown:React(26957): Unable to dispatch keyboard events in JS as the react instance has not been attached
W/unknown:React(26957): You seem to be running on device. Run 'adb reverse tcp:8081 tcp:8081' to forward the debug server's port to the device.
E/(26957): Unable to load script from assets: index.android.bundle
E/ReactNative(26957): Got JS Exception: ReferenceError: Can't find variable: require
请注意,我做了adb reverse tcp:8081 tcp:8081
事情,错误仍然显示出来。
后来我想从Android库项目中创建一个aar,并通过maven访问它。
我究竟做错了什么? 或者是我想做什么根本不可能?
[1] https://facebook.github.io/react-native/docs/embedded-app-android.html#add-native-code
在调试并尝试了几件事情之后,我发现它在绑定到aar时无法从服务器加载包文件。
如果您在android资源文件夹中添加index.android.bundle,它将开始工作。
链接地址: http://www.djcxy.com/p/29943.html