我有一个遗留的Android java应用程序,我正在集成反应原生。 Per Facebook's instructions,我有一个通用Activity
,我在其中添加了以下代码:
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "HelloWorld", null);
setContentView(mReactRootView);
但是,在我的情况下,我已经下载了我的反应原生包并将其放在我的Android设备的缓存中,所以我通过添加以下调用修改了该示例:
.setJSBundleFile(mReactNativeLocalFile.getAbsolutePath())
这使我能够成功加载下载的软件包,但是没有任何图像加载。因此,加载图像的组件如:
<Image source={require('./img/background.jpg')} style={styles.backgroundImage} />
不要渲染实际图像。
我已确认所有图片都已成功提取并放置在与我的捆绑包相邻的名为assets
的文件夹中。因此,我的文件夹结构如下所示:
com.myapp/cache/templates/MyApp/
index.android.bundle
assets/
img/
background.jpg
因此,任何人都可以告诉我,本地下载到android文件系统的反应本机模板包是否可以引用已经本地下载到android文件系统的图像?
答案 0 :(得分:0)
Based on this change,正确的答案是本地磁盘上的文件夹结构如下所示:
com.myapp/cache/templates/MyApp/
index.android.bundle
drawable-mdpi/
img_background.jpg