{"rsdb":{"rid":"239124","subhead":"","postdate":"0","aid":"164829","fid":"98","uid":"1","topic":"1","content":"
<\/p> \n
Kotlin \u548c Swift, \u4e24\u5927\u65b0\u5ba0! \u501f ReactNative \u719f\u6089\u4e0b kotlin \u7684\u7528\u6cd5,\u4e0d\u6599\u6389\u5751\u91cc\u9762\u4e86.\u6628\u665a\u82b1\u4e86\u5927\u534a\u591c,\u8d81\u8fd9\u4f1a\u513f\u601d\u8def\u6e05\u6670,\u628a\u6d89\u53ca\u5230\u7684\u4e00\u4e9b\u5173\u952e\u4fe1\u606f,\u8fc5\u901f\u6574\u7406\u4e0b.<\/p> \n
package<\/span> com.awesomeproject<\/span>.AnExampleReactPackage<\/span>\n\nimport<\/span> android.widget<\/span>.Toast<\/span>\n\nimport<\/span> com.facebook<\/span>.react<\/span>.bridge<\/span>.ReactApplicationContext<\/span>\nimport<\/span> com.facebook<\/span>.react<\/span>.bridge<\/span>.ReactContextBaseJavaModule<\/span>\nimport<\/span> com.facebook<\/span>.react<\/span>.bridge<\/span>.ReactMethod<\/span>\n\nimport<\/span> java<\/a>.util<\/span>.HashMap<\/span>\n\n\/**<\/span>\n * Created by yanfeng on 2017\/10\/12.<\/span>\n *\/<\/span>\n\nclass<\/span> ToastModule<\/span>(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule<\/span>(reactContext) {\n\n override<\/span> fun getName<\/span>(): String {\n return<\/span> "ToastExample"<\/span>\n }\n\n override<\/span> fun getConstants<\/span>(): Map<String, Any>? {\n val<\/span> constants = HashMap<String, Any>()\n constants.put<\/span>(DURATION_SHORT_KEY, Toast.LENGTH_SHORT<\/span>)\n constants.put<\/span>(DURATION_LONG_KEY, Toast.LENGTH_LONG<\/span>)\n return<\/span> constants\n }\n\n @ReactMethod\n fun show<\/span>(message: String, duration: Int<\/span>) {\n Toast.makeText<\/span>(reactApplicationContext, message, duration).show<\/span>()\n }\n\n companion object<\/span> {\n\n private<\/span> val<\/span> DURATION_SHORT_KEY = "SHORT"<\/span>\n private<\/span> val<\/span> DURATION_LONG_KEY = "LONG"<\/span>\n }\n}<\/code><\/pre>\n <\/div> \n \u4e00\u4e9b\u5751\u4e2d\u7684\u7ecf\u9a8c<\/h2> \n \n - \u5982\u679c ReactNative \u521d\u59cb\u5316\u6162,\u53ef\u4ee5\u6539\u7528\u6dd8\u5b9d\u6e90,\u540e\u9762\u7684 --verbose<\/em> \u53c2\u6570,\u4e3b\u8981\u7528\u6765\u8fa8\u522b\u662f\u5426\u5361\u4f4f.<\/li> \n <\/ul> \n
npm install -g nrm\nnrm use taobao\nnpm install -g react-native-cli --verbose\nreact-native init AwesomeProject --verboses<\/code><\/pre> \n \n RN \u4e0e\u5df2\u6709\u9879\u76ee\u96c6\u6210\u7684\u539f\u7406\u662f,\u628a\u5df2\u6709\u7684 Android \u9879\u76ee\u590d\u5236\u5230 android \u6587\u4ef6\u5939,\u7136\u540e\u6539\u4e0b\u914d\u7f6e.<\/p><\/li> \n
\u5982\u679c\u6ca1\u6709\u5df2\u6709\u7684\u8fd0\u884c\u826f\u597d\u7684\u9879\u76ee,\u4e0d\u8981\u5c1d\u8bd5\u7528 Android Studio \u76f4\u63a5\u65b0\u5efa\u9879\u76ee,\u56e0\u4e3a Android Studio \u7684\u9ed8\u8ba4 SDK \u7248\u672c(25.3.1) \u548c ReactNative \u7684SDK\u7248\u672c(23.0.1) \u4e0d\u4e00\u81f4,\u6240\u4ee5\u5728\u6839\u636e RN \u6587\u6863,\u6539\u914d\u7f6e,\u4f1a\u9047\u5230\u5404\u79cd\u95ee\u9898.\u5982\u679c\u975e\u8981\u6a21\u62df,\u5efa\u8bae\u76f4\u63a5\u57fa\u4e8e AwesomeProject\/android \u8fd9\u4e2a\u9879\u76ee\u6539.<\/p><\/li> \n
\u6539\u6dd8\u5b9d\u6e90,\u53ef\u4ee5\u52a0\u5feb\u901f\u5ea6,\u4f46\u662f\u6bcf\u6b21\u5b89\u88c5\u8fd8\u662f\u9700\u8981 20~40 \u5206\u949f(\u53d6\u51b3\u4e8e\u7f51\u7edc\u73af\u5883\u7b49).\u5982\u679c\u672c\u5730\u518d\u8d77\u4e00\u4e2a sinopia ,\u8fd9\u6837\u7b2c\u4e8c\u6b21\u521d\u59cb\u5316 RN \u65f6,\u53ea\u9700\u8981 3 ~ 5 \u5206\u949f.\u8be6\u89c1: https:\/\/github.com\/rlidwka\/sinopia<\/a><\/p><\/li> \n \u5982\u679c\u9047\u5230 All com.android.support libraries must use the exact same version specification<\/em> \u4e00\u7c7b\u7684\u9519\u8bef,\u53c8\u5fc5\u987b\u89e3\u51b3\u7684\u8bdd,\u53ef\u4ee5\u5c1d\u8bd5\u67e5\u770b\u4f9d\u8d56\u5173\u7cfb,\u770b\u5230\u5e95\u662f\u54ea\u91cc\u5728\u51b2\u7a81:<\/p><\/li> \n <\/ul> \n \u547d\u4ee4\u662f:<\/p> \n
.\/gradlew -q dependencies app:dependencies --configuration compile<\/code><\/pre> \n \u53ef\u80fd\u7684\u8f93\u51fa:<\/p> \n
+--- com.android.support.constraint:constraint-layout:1.0.0-beta2\n| \\--- com.android.support.constraint:constraint-layout-solver:1.0.0-beta2\n\\--- com.facebook.react:react-native:+ -> 0.20.1\n +--- com.google.code.findbugs:jsr305:3.0.0\n +--- com.facebook.stetho:stetho-okhttp:1.2.0\n | +--- com.google.code.findbugs:jsr305:2.0.1 -> 3.0.0\n | +--- com.facebook.stetho:stetho:1.2.0\n | | +--- com.google.code.findbugs:jsr305:2.0.1 -> 3.0.0\n | | \\--- commons-cli:commons-cli:1.2\n | \\--- com.squareup.okhttp:okhttp:2.2.0 -> 2.5.0\n | \\--- com.squareup.okio:okio:1.6.0\n +--- com.squareup.okhttp:okhttp-ws:2.5.0\n | \\--- com.squareup.okhttp:okhttp:2.5.0 (*)\n +--- com.facebook.fresco:fresco:0.8.1\n | +--- com.facebook.fresco:imagepipeline:0.8.1\n | | +--- com.nineoldandroids:library:2.4.0\n | | +--- com.facebook.fresco:fbcore:0.8.1\n | | +--- com.android.support:support-v4:21.0.3 -> 23.0.1\n | | | \\--- com.android.support:support-annotations:23.0.1\n | | \\--- com.parse.bolts:bolts-android:1.1.4\n | +--- com.facebook.fresco:fbcore:0","orderid":"0","title":"\u5751\u4e2d\u901f\u8bb0\u6574\u7406! \u4f7f\u7528 kotlin \u5199\u7b2c\u4e00\u4e2a ReactNative Android \u6a21\u5757(\u4e00)","smalltitle":"","mid":"0","fname":"Android","special_id":"0","bak_id":"0","info":"0","hits":"7609","pages":"2","comments":"0","posttime":"2017-10-16 18:18:41","list":"1508149121","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"http:\/\/images2017.cnblogs.com\/blog\/801860\/201710\/801860-20171012225951387-737789880.png","ispic":"1","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"\u901f\u8bb0<\/A> \u6574\u7406<\/A> \u4f7f\u7528<\/A> kotlin<\/A> \u4e00\u4e2a<\/A> ReactNative<\/A> Android<\/A> \u6a21\u5757<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"113.108.110.181","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"\u5751\u4e2d\u901f\u8bb0\u6574\u7406! \u4f7f\u7528 kotlin \u5199\u7b2c\u4e00\u4e2a ReactNative Android \u6a21\u5757","lastview":"1712735999","digg_num":"89","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}