Sto sviluppando in Eclipse, ho un aliberia nativa che richiama dei byte[] da un database usando classi C++. Nella parte Java ho scritto il seguente codice:
ImageView imageItem1 = (ImageView) findViewById(R.id.imageItem1);
byte[] pictureItem1 = getImageItem1();
Bitmap bitmapItem1 = BitmapFactory.decodeByteArray(pictureItem1, 0, pictureItem1.length);
imageItem1.setImageBitmap(bitmapItem1);
imageItem1.setOnClickListener(this);
Questa operazione viene fatta per 6 volte per creare un activity. Nel database ci sono un'ottantina di immagini, tutte jpg e tutte grandi uguali. Alcune di queste però non vengono visualizzate, e sono sempre le stesse. La cosa strana è che ho usato lo stesso database in QT, e li non ho avuto problemi. Dove potrebbe essere il problema?
EDIT:
Anzi, ho scoperto addirittura che non centra quale immagine. A volte le mostra e a volte no. Per esempio ho l'immagine di una chiave, a volte viene visualizzata, a volte no. Forse qualcose nella JNI? Code:
JNIEXPORT jbyteArray JNICALL Java_com_tamagotchi_ItemShop_getImageItem5(JNIEnv *env, jobject){
int size = item1->getPictureSize();
unsigned char* picture = item5->getpictureInArray();
jbyteArray result = env->NewByteArray(size);
size_t i;
for (i=0; i < size; ++i)
{
jbyte n = (signed char)picture[i];
env->SetByteArrayRegion(result, i,1, &n );
}
return result;
}