JNI: jcharArray: warning: cast to pointer from integer of.

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Hallo,
habe mit JNI mal wieder folgendes Problem....

Ich habe eine Java-Methode die per Getter-Methode ein Char-Array zurück liefert.
Dieses muss ich in meiner C-Wrapper-Klasse an einen Treiber weiterleiten.

Ähnliches habe ich bereits mit erfolg mit einem Integer-Array gemacht.

So hats mit dem Integer geklappt:

Code:
// get the class of the pdriverConfig-object
jclass XLDriverConfigClass = (*env)->GetObjectClass(env, pDriverConfig);
    
// get the method IDs
jmethodID getReservedMID = (*env)->GetMethodID(env, XLDriverConfigClass, "getReserved", "()[I"); 
    
// call some methods
jintArray jreserved = (jintArray)(*env)->CallIntMethod(env, obj, getReservedMID);

Da zwischendrin standen noch mehr Zeilen id eich der Übersichthalber weggelassen hab da sie mit demInt-Array nix zu tun hatten.
Ich habe mir also erst die Klasse meines Objektes das die Getter-Methode kennt besorgt.
Mit dieser Klasse habe ich mir dann die Methoden-ID der Getter-Klasse geholt und damit dann schließlich die getter-Methode aufgerufen. Das Ergebnis habe ich in ein "jintArray" gecasted und schließlich auch in einem "jintArray" gespeichert.

Hat prima geklappt.

Gleiches habe ich jetzt analog mit einem Char-Array gemacht:

Code:
// get the class of the data object
jclass DataClass = (*env)->GetObjectClass(env, dataObject);
                    
// get the method IDs
jmethodID getRawMID = (*env)->GetMethodID(env, DataClass, "getRaw", "()[C"); 
      
// call some methods              
jcharArray jrawArray = (jcharArray) (*env)->CallCharMethod (env, obj, getRawMID);


Wie gesagt. Beim Integer-Array hat das 1a geklappt. Doch beim Char-Array balert mir der Compiler folgendes um die Ohren:

warning: cast to pointer from integer of different size

Bemängeln tut er hier die Zeile in der das "jcharArray" gecasted und gespeichert wird.

Warum krieg ich hier "pointer from integer" ?? Und was will er da mit der Größe ?

Gruß
Alex[/code]
 
T

tuxedo

Gast
Hat denn keiner ne Idee ? Hänge immernoch an dem Problem fest und finde keine saubere Lösung.

Gruss
Alex
 

KSG9|sebastian

Top Contributor
hm...hab von jni bzw. c keine ahnung...
aber: willst du char (primitiver Datentyp) oder Character (Objekt) benutzen ? Vll.liegts ja daran!
 
T

tuxedo

Gast
Ich will einfach nur ein 0815 Standard Java char-Array wie das hier

Code:
/** data as raw-data */
private char[] raw = null;

mittels JNI in C vom Typ jcharArray in den C-Char-Typ umwandeln. Und so wie es in _allen_ SUN Dokus steht klappt es prima mit einem Object-Array und mit einem Integer-Array. Nur bei dem char-Array meckert er.

Gruss
Alex
 

KSG9|sebastian

Top Contributor
damit klappt es:

Object[] obj..
Integer[] integ...

und damit nicht:

char[] ?


Wie gesagt, Object und Integer sind Klassen, char ist n primitiver Datentyp
 
T

tuxedo

Gast
Laut JNI Tutorial, SUNs Homepage und vielen anderen seiten soll es da genau so funktionieren. Nur gibt keiner ein Beispiel.

Die "CallCharMethod" in C benutzt scheinbar auch keine Sau. Google liefert da erstaunlich wenig Ergebnisse, und davon ist sogut wie nix zu gebrauchen.

Das Problem das ich habe liegt icht auf der JAVA-Seite... Deshalb ist es vermutlich auch eher unwichtig was jetzt Klasse und primitiver Datentyp ist.
Das Problem liegt auf der C-Seite. Wenn ich versuche in C meine Java-Methode die mir das Char[] zurück gibt muss ich das in ein "jcharArray" casten. jcharArray ist die "C" Variante eines Java-Char-Arrays. Und bei dem Catsen kommt der Fehler:

[Warning] cast to pointer from integer of different size

Und genau den Fehler schnall ich nicht. Wie gesagt: Ein Beispiel wie man ein Char-Array das von Java kommt in C einliest habe ich nciht gefunden.

Und ich muss nochmals betonen (in anderen Foren wurde ich schon ziemlich missverstanden): Das hier hat GARNIX mit einem String zu tun. Das Char-Array enthält Rohdaten die eine PCMCIA-Karte liefert, keinen normalen Text.

gruss
Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Warning bei Build jar Allgemeine Java-Themen 9
J WARNING: An illegal reflective access operation has occurred, beim Compilieren von JasperReports, was bedeutet das ? Allgemeine Java-Themen 23
G Warnung in der Konsole von Eclipse "WARNING: ..." Allgemeine Java-Themen 2
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
C Klassen Warning "synthetic access" bei innerer Klasse Allgemeine Java-Themen 15
S Keine Exception-Warning in Eclipse Allgemeine Java-Themen 3
E Heap und Comparable (warning: [unchecked] unchecked cast) Allgemeine Java-Themen 2
G GC Warning: Repeated allocation of very large block Allgemeine Java-Themen 35
N Warning "The Cast from Object to" Allgemeine Java-Themen 9
N warning bei Vectoren Allgemeine Java-Themen 15
N warning beim compilieren des eigenen TableRenderers Allgemeine Java-Themen 5
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
Tarrew RMI Java RMI - com.sun.proxy.$Proxy1 cannot be cast to Funktionen Allgemeine Java-Themen 0
G Klassen Cast auf Argumentenklasse via Reflection? Allgemeine Java-Themen 10
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
M Harten Cast vermeiden Allgemeine Java-Themen 7
S Unchecked cast from Component to JComboBox<String> Allgemeine Java-Themen 3
P Reflection "Cast" Allgemeine Java-Themen 5
M cannot be cast to java.lang.Comparable Allgemeine Java-Themen 5
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
Z Cast von Long zu Integer funktionert nicht Allgemeine Java-Themen 3
N cast über string Allgemeine Java-Themen 24
C int zu byte cast - verständnis Allgemeine Java-Themen 3
MQue cast DefaultMutableTreeNode Allgemeine Java-Themen 2
M Type-Cast Allgemeine Java-Themen 3
G Cast Allgemeine Java-Themen 4
O unchecked cast? Allgemeine Java-Themen 4
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
reibi Unchecked cast Allgemeine Java-Themen 1
T cast Object to Double[] Allgemeine Java-Themen 2
G Trotz Generics Cast-Fehler! Allgemeine Java-Themen 5
G Object cast via Reflection Allgemeine Java-Themen 8
R cast Integer[] zu int[] Allgemeine Java-Themen 2
G Cast von String zu Enumeration Allgemeine Java-Themen 2
D Cast schlägt fehl : Object[] zu Button[] Allgemeine Java-Themen 2
Y unnecessary cast & Performance Allgemeine Java-Themen 29
B unchecked cast Error Allgemeine Java-Themen 2
K Cast ohne neues Object zu erzeugen Allgemeine Java-Themen 12
D Cast Exeption Allgemeine Java-Themen 4
K Cast von Properties und Hashmap Allgemeine Java-Themen 9
E NumberFormatException bei cast auf double Allgemeine Java-Themen 5
H [unchecked] unchecked cast Problem Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben