2015-11-16 6 views
9

私は反応したネイティブ0.14.2を使用しています。私はgithubでこの質問をしましたが、そのレポはあまりにも多くの問題によって圧倒されています。私はここで答えを見つけることができることを願っています。だからここAndroid用のネイティブ反応でローカル画像を使用すると誰もが成功しますか?

は、プロジェクト構造である:

android-project 
+---app 
| \---src 
|  \---main 
|   \---assets 
|   \---java 
|   \---res 
+---reactnative 
| \---assets 
|  \[email protected] 
|  \[email protected] 
|  \[email protected] 
----index.android.js 

ここでは画像を表示するためのコードです:

<Image 
    source={require('./reactnative/assets/image.png')} 
    resizeMode='contain' 
    style={styles.image} /> 

localhostのreact-native startと一緒に実行している場合、上記のコードは正常に動作します。バンドルは、APKにネイティブリソースを反応させた後、しかし、それは動作しません:

react-native bundle --platform android -dev false --entry-file index.android.js \ 
--bundle-output app/src/main/assets/index.android.bundle \ 
--assets-dest app/src/main/res/ 

は、ここで出力です:

android-project 
+---app 
| \---src 
|  \---main 
|   \---assets 
|    \---index.android.bundle 
|   \---java 
|   \---res 
|    \---drawable-xxxhdpi 
|     \---reactnative_assets_image1.png 
|    \---drawable-xxhdpi 
|     \---reactnative_assets_image1.png 
|    \---drawable-xhdpi 
|     \---reactnative_assets_image1.png 
|    \---drawable-mdpi 
|     \---reactnative_assets_image1.png 

はそれがネイティブに反応してAPKを生成するための正しい方法ですか?トラブルシューティングをしてください。ありがとう!

+0

ここでアップグレード手順に従ってください:https://facebook.github.io/react-native/docs/upgrading.html –

+0

Windowsを使用していますか?新しい資産システムのようなものが壊れたようです。もしそうなら、ソリューションについてはhttps://github.com/facebook/react-native/issues/4207をチェックしたいかもしれません。 – Almouro

+0

@DaveSibiski私は既存のプロジェクトのために0.14.2から直接始めたので、何かをアップグレードする必要はないと思います。 –

答えて

0

あなたが照会のためhttps://facebook.github.io/react-native/docs/image.html#adding-static-resources-to-your-android-appを訪れる見たいと思うかもしれませんが、基本的には、パスをJSファイルを使用して描画可能なフォルダにあなたのイメージを置く標準JSでrequire()を使用した場合check.png in android/app/src/main/res/drawable-hdpi

+0

で修正する必要があります私の質問を再確認することができます。私はlocalhostを使ってアプリケーションをうまく動かすことができた。しかし、アセットを生成してjsファイルをバンドルした後、私はイメージを見ることができませんでした。 –

1

例えば <Image source={require('./ res/check.png')} />ようにあなたのコードを設定します与えられたパスは相対的なものなので、あなたが必要としているファイルに相対的なパスを指定する必要があります。これを行うには、アンドロイドとiosのディレクトリの中に入れるのではなく、あなたのアプリケーションのJSコードは、そこに画像を保存すると、パスははるかに短くなり、OSごとに違うでしょう。

関連する問題