Android — конвертировать _di_Object в ILocalObject и инициализации объекта

Я впервые пытаюсь преобразовать некоторые мосты Jni. Однако у меня возникают некоторые проблемы при преобразовании некоторых типов данных.

Первый связан с этим автоматически сгенерированным заголовком:

Каждый раз, когда я пытаюсь перекомпилировать (без оригинального файла .pas, когда я не могу больше компилировать (ограничения IDE)), я получаю некоторые ошибки в следующей строке:

/* TJavaImport.Create */ inline __fastcall TJToast(void * ID, void * ClsID, Androidapi::Jnibridge::TJavaVTable* VTable) : Androidapi::Jnibridge::TJavaGenericImport__2<_di_JToastClass,_di_JToast> (ID, ClsID, VTable) { }

ОШИБКА:

[bccaarm Error] Androidapi.JNI.Toast.hpp (76): нет соответствующего конструктора
для инициализации
«Androidapi :: Jnibridge :: TJavaGenericImport__2<_di_JToastClass,
_di_JToast> ‘Androidapi.JNIBridge.hpp (197): конструктор-кандидат недопустим: требуется 0 аргументов, но предоставлено 3
Androidapi.JNIBridge.hpp (174): конструктор-кандидат (неявный
конструктор копирования) нежизнеспособен: требуется 1 аргумент, но предоставлено 3

Другой связан с

Я использовал библиотеку, в которой уже была реализована функция getBonded (), но как только я больше не могу использовать файлы .pas, мне приходится реализовывать ее вручную, поэтому я получил ее:

void getBonded(TStringList* res){

JBluetoothAdapter* x;
JSet* externalDevices;
JIterator* it;
JBluetoothDevice* o;
JBluetoothDevice* remote;
JBluetoothSocket* xx;

x = TJBluetoothAdapter::JavaClass->getDefaultAdapter();

externalDevices = x->getBondedDevices();
it = externalDevices->iterator();

while (it->hasNext()){
o = TJBluetoothDevice::Wrap(it->next()::ILocalObject::GetObjectID());
res->Add(JStringToString(o->getName())+"="+JStringToString(o->getAddress()));
}
}

Но я получаю ошибки в следующей строке:

        o = TJBluetoothDevice::Wrap(it->next()::ILocalObject::GetObjectID());

Ошибки:

[bccaarm Error] Main.cpp (2423): ожидается ‘;’ в конце декларации
[bccaarm Error] Main.cpp (2424): вызов ‘Wrap’ неоднозначен
Androidapi.JNIBridge.hpp (187): функция-кандидат
Androidapi.JNIBridge.hpp (188): функция-кандидат

Поэтому я изменил последний на (но еще не тестировал):

o = TJBluetoothDevice::Wrap(it->next()->IJavaInstance);

С тех пор, большое спасибо;

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …