我在尝试为这个名为 Slyce 的第 3 方产品制作绑定库时遇到了一些挑战...... GitHub 上有 sdks
https://github.com/Slyce-Inc/Slyce-Android-SDK
https://github.com/Slyce-Inc/Slyce-iOS-SDK
在 Android 端使用下面的元文件我可以编译它,但我无法使用附加的参考构建我的项目,我得到以下错误。
CameraFrame_ReleaseListenerImplementor.java(40,40):错误:错误:ReleaseListener 在 CameraFrame com.android.slyce.scanner.CameraFrame.ReleaseListener 中具有受保护的访问权限
CameraInstance_ListenerImplementor.java(43,43):错误:错误:侦听器在 CameraInstance com.android.slyce.scanner.CameraInstance.Listener 中具有受保护的访问权限
meta file
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<attr path="/api/package[@name='com.android.slyce.communication']/interface[@name='CommManager.On2DSearchListener']" name="argsType">OnTwoDSearchListener</attr>
<attr path="/api/package[@name='com.android.slyce.utils']/class[@name='Constants']/field[@name='_1D']"
name="managedName">OneD</attr>
<attr path="/api/package[@name='com.android.slyce.utils']/class[@name='Constants']/field[@name='_2D']"
name="managedName">TwoD</attr>
<attr path="/api/package[@name='com.android.slyce.utils']/class[@name='Constants']/field[@name='_3D']"
name="managedName">ThreeD</attr>
<attr path="/api/package[@name='com.android.slyce.utils']/class[@name='BarcodeHelper.ScannerType']/field[@name='_2D']"
name="managedName">TwoD</attr>
<attr path="/api/package[@name='com.android.slyce.utils']/class[@name='BarcodeHelper.ScannerType']/field[@name='_3D']"
name="managedName">ThreeD</attr>
<!--
Volley Stuff
-->
<!-- Change the name of the Request interface -->
<attr path="/api/package[@name='com.android.volley']/interface[@name='Request.Method']" name="managedName">RequestMethod</attr>
<attr path="/api/package[@name='com.android.volley']/class[@name='Request']/method[@name='compareTo' and count(parameter)=1 and parameter[1][@type='com.android.volley.Request<T>']]/parameter[1]" name="managedType">Java.Lang.Object</attr>
<attr path="/api/package[@name='com.android.volley.toolbox']/class[@name='ImageRequest']/method[@name='deliverResponse' and count(parameter)=1 and parameter[1][@type='android.graphics.Bitmap']]/parameter[1]" name="managedType">Java.Lang.Object</attr>
<remove-node path="/api/package[@name='com.android.volley.toolbox']/class[@name='JsonRequest']/method[@name='parseNetworkResponse' and count(parameter)=1 and parameter[1][@type='com.android.volley.NetworkResponse']]"/>
<!-- OnSlyceCameraListener-->
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraBarcodeDetected']" name="argsType">OnSlyceCameraListener_onCameraBarcodeDetected</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraBarcodeInfoReceived']" name="argsType">OnSlyceCameraListener_onCameraBarcodeInfoReceived</attr>
<!-- <attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraFinished']" name="argsType">OnSlyceCameraListener_onCameraFinished</attr>-->
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraImageDetected']" name="argsType">OnSlyceCameraListener_onCameraImageDetected</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraImageInfoReceived']" name="argsType">OnSlyceCameraListener_onCameraImageInfoReceived</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraPreviewMode']" name="argsType">OnSlyceCameraListener_onCameraPreviewMode</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraResultsReceived' ]" name="argsType">OnSlyceCameraListener_onCameraResultsReceived</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraSlyceProgress']" name="argsType">OnSlyceCameraListener_onCameraSlyceProgress</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onCameraSlyceRequestStage' ]" name="argsType">OnSlyceCameraListener_onCameraSlyceRequestStage</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onProgressExt']" name="argsType">OnSlyceCameraListener_onProgressExt</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onResultsReceivedExt']" name="argsType">OnSlyceCameraListener_onResultsReceivedExt</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onSlyceCameraError' ]" name="argsType">OnSlyceCameraListener_onSlyceCameraError</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onSnap']" name="argsType">OnSlyceCameraListener_onSnap</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceCameraListener']/method[@name='onTap']" name="argsType">OnSlyceCameraListener_onTap</attr>
<!--OnSlyceRequestListener -->
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraBarcodeDetected']" name="argsType">OnSlyceRequestListener_onCameraBarcodeDetected</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraBarcodeInfoReceived']" name="argsType">OnSlyceRequestListener_onCameraBarcodeInfoReceived</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraFinished']" name="argsType">OnSlyceRequestListener_onCameraFinished</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraImageDetected']" name="argsType">OnSlyceRequestListener_onCameraImageDetected</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraImageInfoReceived']" name="argsType">OnSlyceRequestListener_onCameraImageInfoReceived</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraPreviewMode']" name="argsType">OnSlyceRequestListener_onCameraPreviewMode</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraResultsReceived' ]" name="argsType">OnSlyceRequestListener_onCameraResultsReceived</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraSlyceProgress']" name="argsType">OnSlyceRequestListener_onCameraSlyceProgress</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onCameraSlyceRequestStage' ]" name="argsType">OnSlyceRequestListener_onCameraSlyceRequestStage</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onProgressExt']" name="argsType">OnSlyceRequestListener_onProgressExt</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onResultsReceivedExt']" name="argsType">OnSlyceRequestListener_onResultsReceivedExt</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onSlyceCameraError' ]" name="argsType">OnSlyceRequestListener_onSlyceCameraError</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onSnap']" name="argsType">OnSlyceRequestListener_onSnap</attr>
<attr path="/api/package[@name='com.android.slyce.listeners']/interface[@name='OnSlyceRequestListener']/method[@name='onTap']" name="argsType">OnSlyceRequestListener_onTap</attr>
<attr path="/api/package[@name='com.android.slyce.scanner']/interface[@name='CameraFrame.ReleaseListener']" name="visibility">public</attr>
<attr path="/api/package[@name='com.android.slyce.crop']/class[@name='ImageViewTouchBase']" name="visibility">public</attr>
<attr path="/api/package[@name='com.android.slyce.scanner']/interface[@name='CameraInstance']" name="visibility">public</attr>
<attr path="/api/package[@name='com.android.volley']/class[@name='Request']/method[@name='deliverResponse']" name="abstract">false</attr>
</metadata>
在 IOS 端,这里是 Sharpie 在尝试使用框架时的输出
$ sharpie bind -framework SlyceSDK.framework
Parsing 1 header files...
Binding...
no types were parsed that could be bound
Done. Exiting with error code 1.