- 需要使用rn进行渲染的activity的覆写方式发生变化,以及需要声明一个Application类。
Activity类:
public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "RNStudyProject";
}
}
Application类:
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage()
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}
java.lang.UnsatisfiedLinkError: could find DSO to load: libreactnativejni.so32 64
解决方法:
1、需要在gradle.properties
文件中添加
android.useDeprecatedNdk=true
2、需要在build.gradle
文件中添加
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
...
packagingOptions {
exclude "lib/arm64-v8a/librealm-jni.so"
}
-
index.android.js
文件
import React,{ Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
class RNStudyProjectApp extends Component {
render() {
return (
<View>
<Text>Hello,World</Text>
</View>
);
}
}
- 其他
在使用npm install
之后生成的package.js
文件中添加
{
"name": "RNStudyProject",
"version": "1.0.0",
"description": "",
"main": "index.js",
//修改
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start"
},
"author": "",
"license": "ISC",
//添加,这里的版本最好从facebook的默认的教程project中最新的一致吧
"dependencies": {
"react": "15.2.1",
"react-native": "0.30.0"
}
}