我正在使用React Native 0.46编写原生Android模块,但我无法从模块中获取当前活动实例.
我有一个扩展ReactContextBaseJavaModule的类,它包含一个内置的getCurrentActivity()方法.但是,每次调用此方法时,我都会得到一个null.
我想这是因为我在我的模块构造函数中调用它,它在Android应用程序的开头执行,可能在Activity实例化之前?
如果你们知道从模块中访问当前Activity实例的干净方法(如果可能的话,不必在某个时刻存储一个Activity实例并传递它),我会很高兴的!
我想同时在至少 2 个 Android 模拟器上测试我的应用程序。我可以启动 2 个模拟器,但似乎无法找到如何react-native run-android使用 ADB 在 2 个模拟器上运行我的应用程序。如果可能的话,我还希望能够react-native log-android在测试我的应用程序时在每一个上运行一个。
有没有办法这样做?
javascript android android-emulator react-native react-native-android
我正在使用React Native构建应用程序,我必须将pod依赖项添加到我的项目中.我遵循了一个关于如何使用全新的react-native init项目初始化pod 的教程.这是我的Podfile的内容:
target 'MyProject' do
target 'MyProject-tvOSTests' do
inherit! :search_paths
end
target 'MyProjectTests' do
inherit! :search_paths
end
end
target 'MyProject-tvOS' do
target 'MyProject-tvOSTests' do
inherit! :search_paths
end
end
Run Code Online (Sandbox Code Playgroud)
然后我跑pod install,我得到这个错误:
目标
MyProject-tvOSTests被声明两次.
我认为这是react-native init的一个问题,但我不知道如何纠正它.
提前致谢!
我正在尝试在我的 React Native 应用程序中请求 Android 权限。我按照此处的官方文档进行操作,并收到此运行时错误(来自react-native log-android命令):
W ReactNativeJS: undefined is not an object (evaluating 'PermissionsAndroid.PERMISSIONS.CAMERA')
Run Code Online (Sandbox Code Playgroud)
这是我实际拥有的代码:
我的导入(由 WebStorm 生成):
import * as PermissionsAndroid from "react-native";
Run Code Online (Sandbox Code Playgroud)
实际请求许可的代码:
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.CAMERA,
{
'title': 'A title',
'message': 'A message'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
return true;
} else {
return false;
}
} catch (err) {
console.warn(err)
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这不起作用,因为它来自官方文档。
我想用Python编写一个脚本(这里是3.5)来控制笔记本电脑屏幕的亮度(得到HP EliteBook,不知道它是否重要).有谁知道这是否有一些代码/模块?
在此先感谢大家,祝你有个美好的一天!
我正在用React Native构建一个iOS应用程序.这样做,我安装了一个react-native模块并按照模块教程配置了我的iOS xcode项目(主要是cocoapods).现在,当我运行时react-native run-ios,我得到这个错误堆栈:
架构x86_64的未定义符号:
"_JSNoBytecodeFileFormatVersion",引自:
RCTJavaScriptLoader.o中的[RCTJavaScriptLoader loadBundleAtURL:onProgress:onComplete:]
+ [RCTJavaScriptLoader attemptSynchronousLoadOfBundleAtURL:runtimeBCVersion:sourceLength:error:]在RCTJavaScriptLoader.o"facebook :: react :: IRemoteConnection :: ~IRemoteConnection()"中,引自:
RCTInspector.o中的RemoteConnection :: ~RemoteConnection()"facebook :: react :: parseTypeFromHeader(facebook :: react :: BundleHeader const&)",引用自:
+ [RCTJavaScriptLoader attemptSynchronousLoadOfBundleAtURL:runtimeBCVersion:sourceLength:error:]在RCTJavaScriptLoader.o中
"facebook :: react :: customJSCWrapper()",引自:
- RCTDevSettings.o中的[RCTDevSettings isJSCSamplingProfilerAvailable]
- RCTInspector.o中的RCTDevSettings.o ____ZL11getInstancev_block_invoke中的[RCTDevSettings toggleJSCSamplingProfiler]
RCTJSCErrorHandling.o中的_RCTNSErrorFromJSErrorRef
- RCTSamplingProfilerPackagerMethod.o中的[RCTSamplingProfilerPackagerMethod handleRequest:withResponder:]
"facebook :: react :: systemJSCWrapper()",引自:
- RCTDevSettings.o中的[RCTDevSettings isJSCSamplingProfilerAvailable]
- RCTDevSettings.o中的[RCTDevSettings toggleJSCSamplingProfiler]
RCTJSCErrorHandling.o中的_RCTNSErrorFromJSErrorRef
- RCTSamplingProfilerPackagerMethod.o中的[RCTSamplingProfilerPackagerMethod handleRequest:withResponder:]
ld:找不到架构x86_64的符号
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
**建筑失败**
以下构建命令失败:
Ld /Users/antoine/R/devlab/ReactNative/medway-twilio/MedwayTwilio/ios/build/Build/Products/Debug-iphonesimulator/React/React.framework/React normal x86_64(1 failure)
我怀疑这与使用xcode将项目库和框架包含在项目中有关,但我不确定.
这是我的项目目标/构建阶段/链接二进制文件的截图,其中包含xcode中的库面板:
"MedwayTwilio"是我的项目名称
我有一个我编码的React Native原生桥接模块,正如您所知,React Native 版本0.47对这些进行了重大改变:
Remove unused createJSModules calls (ce6fb33, 53d5504) - @javache
Run Code Online (Sandbox Code Playgroud)
问题是,现在使用RN 0.47(或将来更高)的项目将不会编译,如果这个不赞成的overriden方法在MainApplication.javaAndroid模块的文件中,并且使用较低版本的项目如果不存在则不会编译.
如何使用我自己的本机模块与0.47以上的旧版本和新版本兼容?
javascript compatibility android react-native react-native-android
react-native ×6
android ×3
javascript ×3
cocoapods ×2
ios ×2
xcode ×2
python ×1
python-3.x ×1
windows ×1