前言
如题
错误代码
ERROR EPERM: operation not permitted, lstat '...\.idea\workspace.xml___jb_old___'
{"errno":-4048,"code":"EPERM","syscall":"lstat","path":"...\.idea\\workspace.xml___jb_old___"}
Error: EPERM: operation not permitted, lstat 'app\.idea\workspace.xml___jb_old___'
at Error (native)
大致就是这样的报错,对于一个对Android一窍不通的小白,我一度把原因归咎于安装的插件不支持我的RN0.6x,而且他们的文档确实没有详细的书写0.6x怎么安装,毕竟0.6x不需要手动link之后,其实也会出现一些问题。
而正奇怪的是,我把这个插件卸载之后程序又可以成功的跑通,你跟我说插件没问题?
然而
然而插件确实没问题。
遇到类似这样的错误,对于Windows的Android开发来说,你只要CD到Android目录下面,执行:
./gradlew clean
我是使用的posh,CMD可能需要:
gradlew clean
或者大家可以去这个答案看看。
按照他们所说,应该就是权限的问题,具体分析等我继续研究之后再补充。
补充
上述方式虽然可以让你的程序顺利运行,但是你发现第二次再使用时会已然报错,那么我们又要运行一遍:
./gradlew clean
有没有一劳永逸的解决方法呢,有一种方法是我们需要在android/app/build.gradle里面添加:
android {
compileSdkVersion rootProject.ext.compileSdkVersion
+ packagingOptions {
+ pickFirst '**/libjsc.so'
+ }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
但是这个并不适用于我,下面这个更加适合我,还是再同样的内容,把packagingOptions换成下面的东西。
packagingOptions {
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/x86_64/libjsc.so'
pickFirst 'lib/arm64-v8a/libjsc.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
}