react-native 版本是0.55.4
1. 安装 react-native-file-selector 插件
npm i react-native-file-selector -S
2. 执行 react-native link react-native-file-selector
ios版本
1. 选中 项目工程/Libraries 右键 Add File to "xxx(app工程)
如果 选择的 RNFileSelector.xcodeproj 文件是灰色的 ,
1. 在这个目录(node_modules/react-native-file-selector/ios)下 运行 pod install ,
2. 然后选择 Pods.xcodeproj文件 ,路径: node_modules/react-native-file-selector/ios/Pods/Pods.xcodeproj
2. 在build phases / Link Binary with libraries 下添加 FileBrowser.framework
3. Build Settings -> Frameworks Search Path 添加 ${BUILT_PRODUCTS_DIR}/FileBrowser
4. 处理这个插件的bug (没有这个会报线程出错 Thread 1: signal SIGABRT)
具体错误信息
查看详情错误 xCode
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /Users/***/Library/Developer/Xcode/DerivedData/APPName-ciohvchhwvwbfubwetjezrhgxcbs/Build/Products/Debug-iphonesimulator/FileBrowser.framework/FileBrowser
Reason: image not found
解决办法:
注意点:
android 依赖时出现各种问题处理
1. build时报错,包下载不下来,超时
Could not resolve all artifacts for configuration ':classpath'.
> Could not resolve com.android.tools.build:gradle:3.5.3.
Required by:
project :
> Could not resolve com.android.tools.build:gradle:3.5.3.
> Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom'.
> Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom'.
> Connection reset
> Could not resolve com.android.tools.build:gradle:3.5.3.
> Could not get resource 'http://maven.google.com/nexus/content/groups/public/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom'.
> Could not GET 'http://maven.google.com/nexus/content/groups/public/com/android/tools/build/gradle/3.5.3/gradle-3.5.3.pom'.
> Connect to maven.google.com:80 [maven.google.com/172.217.24.67, maven.google.com/2404:6800:4005:805:0:0:0:2003] failed: Connection timed out: connect
处理方法 :
1. 到node_modules / react-native-file-selector / android / build.gradle 文件下面
把 google() 替换成 maven { url 'https://maven.aliyun.com/repository/google' }
把 jcenter() 替换成 maven { url 'https://maven.aliyun.com/repository/jcenter' }
2. 如果后面启动项目还报这个错误 , 可以去项目下 “项目应用 / android / build.gradle 文件
a. 同上 替换 上面俩个google() 和 jcenter()
b. 可以把 maven { url "https://maven.google.com" } 注释掉,这个下载依赖 会出现 443 拉不下来的问题
2. Could not resolve com.nbsp:library:1.8.
解决:到node_modules / react-native-file-selector / android / build.gradle
它更新到 1.9.x:所以使用 compile 'com.nbsp:materialfilepicker:1.9.1'
把 compile 'com.nbsp:library:1.8' 替换成 compile 'com.nbsp:materialfilepicker:1.9.1'
3. com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
这是因为编译的版本配置不正确
原版
android {
compileSdkVersion safeExtGet("compileSdkVersion", 27)
buildToolsVersion safeExtGet("buildToolsVersion", "27.0.3")
defaultConfig {
minSdkVersion safeExtGet("minSdkVersion", 16)
targetSdkVersion safeExtGet("targetSdkVersion", 27)
versionCode 1
versionName "1.0"
}
lintOptions {
abortOnError false
}
}
修改之后
android {
compileSdkVersion safeExtGet("compileSdkVersion", 28)
buildToolsVersion safeExtGet("buildToolsVersion", "28.0.3")
defaultConfig {
minSdkVersion safeExtGet("minSdkVersion", 21)
targetSdkVersion safeExtGet("targetSdkVersion", 28)
versionCode 1
versionName "1.0"
}
lintOptions {
abortOnError false
}
}
4. 如果的你用的是 androidx 会报一些老的类已经弃用
//import android.support.v4.app.ActivityCompat;
import androidx.core.app.ActivityCompat;
//import android.support.v4.content.ContextCompat;
import androidx.core.content.ContextCompat;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
5. build 应用包报错
Could not determine the dependencies of task ':react-native-file-selector:verifyReleaseResources'.
> Could not resolve all task dependencies for configuration ':react-native-file-selector:releaseRuntimeClasspath'.
解决办法:
修改文件路径:node_modules/react-native-file-selector/android/build.gradle
注释下面代码: