2015-11-16 10 views
9

Sto usando react nativo 0.14.2. Ho posto questa domanda al numero github ma il repo è schiacciante da troppi problemi. Spero di poter trovare la risposta qui.Qualcuno ha successo nell'usare l'immagine locale nel reagire nativo per Android?

Così qui è la struttura del progetto:

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

Ecco il codice per visualizzare l'immagine:

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

Il codice sopra funziona bene quando funziona insieme a localhost react-native start. Ma non funziona dopo bundling reagire risorse native in 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/ 

ecco l'output:

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 

E 'il modo giusto per generare l'apk con reagirà nativa? Si prega di risolvere i problemi. Grazie!

+0

Hai seguito le istruzioni di aggiornamento qui: https://facebook.github.io/react-native/docs/upgrading.html –

+0

Sei su Windows? Sembra che il nuovo sistema di asset abbia rotto alcune cose. In tal caso, potresti voler controllare https://github.com/facebook/react-native/issues/4207 per una soluzione. – Almouro

+0

@DaveSibiski Ho iniziato con 0.14.2 direttamente per un progetto esistente, quindi non penso di dover aggiornare nulla. –

risposta

0

si potrebbe voler cercare visitare https://facebook.github.io/react-native/docs/image.html#adding-static-resources-to-your-android-app per si esegue una query, in pratica è istituito si codice come <Image source={require('./ res/check.png')} /> utilizzando i file JS e mettendo le immagini in cartelle disegnabili esempio check.png in android/app/src/main/res/drawable-hdpi

+0

È possibile ricontrollare la mia domanda. Potrei eseguire l'app bene usando localhost. Ma dopo aver generato le risorse e aver raggruppato il file js non sono riuscito a vedere alcuna immagine. –

1

quando si utilizza require() nella norma JS, il percorso dato è relativo, quindi ogni percorso dato deve essere relativo al file in cui li stai richiedendo. Il modo migliore per farlo è non averli nelle directory 'android' e 'ios', ma avere uno separato con le tue app JS entrano in codice e memorizzano le immagini lì, in questo modo i percorsi saranno molto più brevi e non differenti per sistema operativo.

Problemi correlati