1.Could not install the app on the device, read the error above for details.
先检查是否已设置SDK环境变量ANDROID_HOME;
然后linux下面可以在项目目录运行chmod 755 android/gradlew;
windows的可以react-native init AwesomeProject初始化新项目,并把/android/gradlew.bat脚本文件copy到自己的项目;
再react-native run-android
2.Failed to apply plugin [id 'com.android.library']
根据提示把
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
改为
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
并且在/android/build.gradle中根据Android Studio 的版本做一些修改(比如Android Studio 2.2)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
注:Android Studio 使用Gradle 这一高级构建工具包来自动化执行和管理构建流程
3.Execution failed for task':app:transformClassesWithDexForDebug'
当app中包含的method数量超过65k,就要开启multiDexEnabled
在/android/app/build.gradle添加
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
详见这里
4.Execution failed for task ':app:processDebugResources'
这个原因多种多样,这里只写我的方法
把/android和/android/app下的build文件夹删除重新运行react-native run-android
然后发现程序在building中卡在93%:app:transformclasseswithdexfordebug,原因是要启用transformclasseswithdexfordebug,buildToolsVersion最低要求
是"23.0.2",于是可以在/android/app/build.gradle中把buildToolsVersion改为"23.0.2"或以上
5.could not get batchedbridge make sure your bundle is packaged correctly OR unable to load script from assets index.android.bundle on windows
可能是开发服务器没有开启,React Native依赖于开发服务器与在模拟器中运行的应用程序进行通信。
在项目根目录下npm run start或react-native start
6.Could not connect to development server
和上一个错误常一起出现,需要把开发服务器的index.android.bundle下载到app里面
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
//另一种方法
//curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
react-native run-android
7.build文件冗余
把/android和/android/app下的build文件夹删除重新运行react-native run-android
8.listener is not supported for native driven evens
按照提示的路径文件进行一些修改
this._listener = config.listener;
this.__isNative = shouldUseNativeDriver(config);
//删除
- if (this.__isNative) {
- invariant(!this._listener, 'Listener is not supported for native driven events.');
- }
-
if (__DEV__) {
this._validateMapping();
}
__getHandler() {
//添加
+ if (this.__isNative) {
+ return this._listener;
+ }
+
return (...args) => {
const traverse = (recMapping, recEvt, key) => {
if (typeof recEvt === 'number' && recMapping instanceof AnimatedValue) {
9.no dimemsion set for key window
关闭react package manager窗口,删除build文件,重新react-native run-android