void
-
Постов
12 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные void
-
-
В delphi есть класс который реализует похожую (с VisualStudio - например) технологию подключения интерфейсов
unit Androidapi.JNI.InAppBilling;{*******************************************************} { } { CodeGear Delphi Runtime Library } { Copyright(c) 2013-2018 Embarcadero Technologies, Inc. } { All rights reserved } { } {*******************************************************} unit Androidapi.JNI.InAppBilling; uses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os; type // ===== Forward declarations ===== JIInAppBillingService = interface;//com.android.vending.billing.IInAppBillingService JIInAppBillingService_Stub = interface;//com.android.vending.billing.IInAppBillingService$Stub // ===== Interface declarations ===== JIInAppBillingServiceClass = interface(JIInterfaceClass) ['{914929AF-917C-4D7E-842C-656701CACCE7}'] end; [JavaSignature('com/android/vending/billing/IInAppBillingService')] JIInAppBillingService = interface(JIInterface) ['{03D4C897-6265-4854-97C6-415F5C846C0E}'] function consumePurchase(apiVersion: Integer; packageName: JString; purchaseToken: JString): Integer; cdecl; function getBuyIntent(apiVersion: Integer; packageName: JString; sku: JString; type_: JString; developerPayload: JString): JBundle; cdecl; function getPurchases(apiVersion: Integer; packageName: JString; type_: JString; continuationToken: JString): JBundle; cdecl; function getSkuDetails(apiVersion: Integer; packageName: JString; type_: JString; skusBundle: JBundle): JBundle; cdecl; function isBillingSupported(apiVersion: Integer; packageName: JString; type_: JString): Integer; cdecl; end; TJIInAppBillingService = class(TJavaGenericImport<JIInAppBillingServiceClass, JIInAppBillingService>) end; JIInAppBillingService_StubClass = interface(JBinderClass) ['{77F4F8A3-E103-4CC1-AB9A-D373F71C6D4C}'] {class} function init: JIInAppBillingService_Stub; cdecl; {class} function asInterface(obj: JIBinder): JIInAppBillingService; cdecl; end; [JavaSignature('com/android/vending/billing/IInAppBillingService$Stub')] JIInAppBillingService_Stub = interface(JBinder) ['{A5D13E53-F09B-4972-A639-BF7D7B81C242}'] function asBinder: JIBinder; cdecl; function onTransact(code: Integer; data: JParcel; reply: JParcel; flags: Integer): Boolean; cdecl; end; TJIInAppBillingService_Stub = class(TJavaGenericImport<JIInAppBillingService_StubClass, JIInAppBillingService_Stub>) end; implementation procedure RegisterTypes; begin TRegTypes.RegisterType('Androidapi.JNI.InAppBilling.JIInAppBillingService', TypeInfo(Androidapi.JNI.InAppBilling.JIInAppBillingService)); TRegTypes.RegisterType('Androidapi.JNI.InAppBilling.JIInAppBillingService_Stub', TypeInfo(Androidapi.JNI.InAppBilling.JIInAppBillingService_Stub)); end; initialization RegisterTypes; end.
пробовал подключить подобным образом
Обращение (для подключения к интерфейсу):....
FService := TJIInAppBillingService_Stub.JavaClass.asInterface(service);....
Но в моем случае выдает ошибку при таком обрашщении:
Java class JIInAppBillingService_Stub could not be found
УСЛОВНО (т.е. мой класс а не в примере):
Java class MyClass_Stub could not be found
JavaSignature - перепроверено названия классов
ЧТО НУЖНО для этого обращения еще, кроме выше приведенного класса, чтобы взлетело подобное обращение? -
Добрый день.
Собственно вопрос:
Как подключить интерфейсы AIDL к Delphi?
Есть опыт подключения jar бибилиотек.Тут описано как действовать если есть jar файлы.
А если их нет?
Есть только AIDL файлы.... -
Интересует вопрос подключение AIDL файлов.
Есть варианты? -
Спасибо
Все РЕШИЛОСЬ установкой - Delphi 10.3.1
как и во всех (подобных) ошибках в XCode, описаных для mac, все решалось установкой либо более старой либо более новой версией -
Вопрос звучит так в более развернутом виде:
Заново стягивал с помощью UpdateLocalCache ? или другим средством ?
но ответ уже получен в твоем
---------------------------------------------------------
Что не понятно из?:ЦитатаРаз 10-ть делали
Все ломается строго при переходе с 11.2 -> 12.1На нескольких машинах
Другого способа стягивать не знаю кроме UpdateLocalCache?
Вот и спросил:
Цитата(заново стягивал UpdateLocalCache ?)
Надеюсь так понятней будет.
И не кинешься снова объяснять:
ЦитатаНет, стянуть заново это
- удалить SDK из списка
- удалить данные файлы из папки что написал выше
- добавить SDK в список, автоматически загрузит новые файлы
UpdateLocalCache просто стянет файлы из указанных мест.
удаление и добавление SDK с нуля подтягивает новые пути для загрузки. -
1.
ЦитатаПопробуй удалить файлы загруженные SDK (C:\Users\YOUR_USER\Documents\Embarcadero\Studio\SDKs) и стянуть заново, потому что UpdateLocalCache лично у меня работал криво.
(заново стягивал UpdateLocalCache ?)
Раз 10-ть делали
Все ломается строго при переходе с 11.2 -> 12.1
2.ЦитатаВ моем случае я переходил с PAServer 19 на 20 и тоже думал UpdateLocalCache ..
не зависело от этого
3.ЦитатаНу и на всякий Clean/Build
Как отче наш
-
1) Delphi -> Project Options -> Building -> Delphi Compiler -> Linking -> Option passed to the LD linker
Добавил нужные для компиляции зависимости стороннего framework с соответствующими параметрами и бибилиотеками
у меня например:
-ObjC -L C:\Users\Andrey\Documents\Embarcadero\Studio\SDKs\iPhoneOS12.1.sdk\usr\lib ..\_CommonModules\YandexMetrica\Frameworks\Foundation.framework\Foundation ......
..... -lsqlite3 -lz -lc++(после такой линковки второй пункт не понадобился)
Но на всякий дополню
2)Цитатаprocedure FakeLoader; cdecl; external 'MyLib.a' name 'OBJC_CLASS_$_MyClass'
dependency 'libstdc++.dylib', 'libz.dylib';dependency 'stdc++', 'z';
-
Добрый день.
(Delphi 10.3)
(XCode 10.1)
Подключил статический framework на версии SDK 11.2 (macMini)
как описано в:ВСЕ ЗАРАБОТАЛО!
После обновления:
1) macMini к
XCode 10.1
SDK 12.1
PAServer 20.0
2) windows
PAServer 20.0
3) PAServer - конектится4) прописал дополнительные SDK (Delphi -> SDK Manager -> Properties)
5) Получил SDK 12 на windows (Delphi -> Update Local File Cache)
6) Пути в Linking изменил для SDK12
При сборке выдает ОШИБКУ:
[DCC Error] E2597 Undefined symbols for architecture arm64 (для 32 - armv7):...
[DCC Fatal Error] F2588 Linker error code: 1 ($00000001)
Кто нибудь сталкивался с такой ошибкой после обновления?
-
-
Добрый день .
Тема про клонирвание
(http://fire-monkey.ru/topic/60-клонирование-компонента-в-runtime/)
закрыта - поэтому задаю вопрос здесь!
Меняю в RunTime Этементы стиля (по умолчанию в стиле = 0)
Object.StylesData['Element.Width'] := 100
Затем клонинрую объект
ObjectClone := Object.Clone(Object));
Получаем
ObjectClone.StylesData['Element.Width'] == 0
Собственно вопрос
Как клонировать измененные значения? Не задавая их отдельно - потом
Подключение интерфейсов AIDL
в Использование Android API
Опубликовано · Изменено пользователем void
Походу все-таки нужен jar
вышеприведенный класс используется в:
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android\debug\google-play-billing.jar
Который в свою очередь подключается в delphi
В AndroidStudio сгенерировались Java файлы с интерфейсами в Java
Теперь вопрос:
Как из этих файлов сделать jar библиотеку?
используя все зависимости от андроида