在react-native-fs(https://github.com/johanneslumpe/react-native-fs)的fork中,我试图添加这段代码:
public class RNFSManager extends ReactContextBaseJavaModule {
public RNFSManager(ReactApplicationContext reactContext) {
super(reactContext);
}
@ReactMethod
public void openFile(String filepath,Callback callback) {
try {
File file = new File(filepath);
MimeTypeMap myMime = MimeTypeMap.getSingleton();
Intent newIntent = new Intent(Intent.ACTION_VIEW);
String mimeType = myMime.getMimeTypeFromExtension(fileExt(filepath).substring(1));
newIntent.setDataAndType(Uri.fromFile(file),mimeType);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Activity currentActivity = getCurrentActivity();
if (currentActivity != null) {
currentActivity.startActivity(newIntent);
} else {
this.getReactApplicationContext().startActivity(newIntent);
}
} catch (Exception ex) {
ex.printStackTrace();
callback.invoke(makeErrorPayload(ex));
}
}
但是当我构建它时,我收到此错误:
.../android/src/main/java/com/rnfs/RNFSManager.java:138: error: cannot find symbol
Activity currentActivity = getCurrentActivity();
^
symbol: method getCurrentActivity()
1 error
我认为我在核心React Native repo中使用ReactContextBaseJavaModule的方式与此完全相同:
最佳答案
事实证明,react-native-fs在其构建过程中有自己的内部react-native依赖.因此,尽管整个应用程序都是基于本机v0.25做出反应,但是react-native-fs正在建立自己的反应本机v0.12,它没有我试图使用的API.这绝对是疯了.
原文链接:https://www.f2er.com/android/430015.html