![]() |
Android: Context über JNI an Java Code übergeben
ich bin gerade dabei, einen DEX Class Loader mit dieser Methode umzusetzen:
![]() Das funktioniert mit nativen Datentypen auch soweit ganz gut. Es gibt nun in meiner JAVA Klasse eine Funktion
Code:
deren ID ich damit hole:
public int SetContext(Context newContext ){
this.context = newContext; }
Delphi-Quellcode:
MethodID_SetContext := TJNIResolver.GetJavaMethodID((jTempClass as ILocalObject).GetObjectID,'SetContext', '(Landroid/content/Context;)I');
So habe ich es probiert, zu übergeben, funktioniert aber nicht. Scheint ja auch ein Interface zu sein, wie komme ich zum "Object" ?
Delphi-Quellcode:
jIntResult :=JavaEnv^.CallIntMethodA(JavaEnv, JavaObjectID, MethodID_SetContext, @SharedActivityContext );
vielen Dank! |
AW: Android: Context über JNI an Java Code übergeben
das geht leider auch nicht :cry:
Das ist noch die wahrscheinlichste Lösung, die meiner Meinung nach funktionieren hätten müssen.
Delphi-Quellcode:
auch das geht nicht:
var
jv:JNIValue; JavaObjectID: JNIObject; jIntResult : JNIInt; begin JavaObjectID := (SharedActivityContextt as ILocalObject).GetObjectID; jv.l := JavaObjectID; jIntResult :=JavaEnv^.CallIntMethodA(JavaEnv, JavaObjectID, MethodID_SetContext, @jv );
Delphi-Quellcode:
var
params: array of JNIObject; JavaObjectID: JNIObject; jIntResult : JNIInt; begin SetLength(params, 1); JavaObjectID := (SharedActivityContextt as ILocalObject).GetObjectID; params[0] := JavaObjectID; jIntResult :=JavaEnv^.CallIntMethodV(JavaEnv, JavaObjectID, MethodID_SetContext, params ); :cry: |
AW: Android: Context über JNI an Java Code übergeben
ha! .. es geht doch .. oh man .. das kommt davon, wenn man fremde Quelltexte übernimmt und dan aus zeitgründen für Feldvariablen nicht das gewohnte "F" bennutzt.
Für alle, die es interessiert, nun läuft es mit: (der zweite Parameter war falsch) var params: array of JNIObject; JavaObjectID: JNIObject; jIntResult : JNIInt; begin SetLength(params, 1); JavaObjectID := (SharedActivityContextt as ILocalObject).GetObjectID; params[0] := JavaObjectID; jIntResult := FJavaEnv^.CallIntMethodV(FJavaEnv, FJavaObjectID, FMethodID_SetContext, params ); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz