У меня ошибка при получении текста на изображении с использованием Amazon Rekognition
сервиса
Process: com.example.myapplication, PID: 32656
java.lang.NoSuchFieldError: org.apache.http.conn.ssl.AllowAllHostnameVerifier.INSTANCE
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:146)
at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.getPreferredSocketFactory(ApacheConnectionManagerFactory.java:86)
at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:63)
at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:56)
at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:50)
at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:38)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:317)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:301)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:194)
at com.amazonaws.services.rekognition.AmazonRekognitionClient.<init>(AmazonRekognitionClient.java:290)
at com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder.build(AmazonRekognitionClientBuilder.java:61)
at com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder.build(AmazonRekognitionClientBuilder.java:27)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
at com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder.defaultClient(AmazonRekognitionClientBuilder.java:45)
at com.example.myapplication.MainActivity.onCreate(MainActivity.java:59)
at android.app.Activity.performCreate(Activity.java:5343)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2340)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2438)
at android.app.ActivityThread.access$800(ActivityThread.java:160)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5368)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
at dalvik.system.NativeStart.main(Native Method)
и это мой код
String photo = Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/testImage.png";
ByteBuffer imageBytes;
try {
InputStream inputStream = new FileInputStream(new File(photo));
imageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream));
Logger.getLogger("org.apache.http").setLevel(Level.FINEST);
Logger.getLogger("com.amazonaws").setLevel(Level.FINEST);
ImageView imageView = findViewById(R.id.image);
Glide.with(this)
.load(photo)
.into(imageView);
AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
DetectTextRequest request = new DetectTextRequest ()
.withImage(new Image()
.withBytes(imageBytes));
DetectTextResult result = rekognitionClient.detectText(request);
List<TextDetection> textDetections = result.getTextDetections();
Log.i(TAG,"Detected lines and words for " + photo);
for (TextDetection text: textDetections) {
Log.i(TAG,"Detected: " + text.getDetectedText());
Log.i(TAG,"Confidence: " + text.getConfidence().toString());
}
}
catch (Exception e)
{
Log.e(TAG,e.toString());
}
Я пытался использовать библиотеку 'org.apache.httpcomponents: httpmime: 4.3.6' и 'org.apache.httpcomponents: httpclient-android: 4.3.6', но для httpclient 'gradle' не может разрешить свои зависимости.
Я что-то не так написал? также я могу использовать текст в изображении, чтобы получить изображение из локального хранилища? и поддерживает арабский или нет?