2017-09-26 3 views
0

J'ai créé une application qui utilise la bibliothèque Mobile Vision pour lire du texte.Les appareils android version 4.4 ne fonctionnent pas avec la vision mobile de google, isOperational renvoie false

compile 'com.google.android.gms:play-services:11.0.4' 

mais tourne mon application ne fonctionne pas avec toutes les versions Android 4.4

la "isOperational" renvoie toujours faux.

est ici le logcat:

E/TextNativeHandle: Error creating remote native handle 
com.google.android.gms.dynamite.DynamiteModule$zzc: No acceptable module found. Local version is 0 and remote version is 0. 
at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source) 
at com.google.android.gms.internal.fb.zzDR(Unknown Source) 
at com.google.android.gms.internal.fb.isOperational(Unknown Source) 
at com.google.android.gms.vision.text.TextRecognizer.isOperational(Unknown Source) 
at MY_PACKAGE_NAME.ReadingActivity.onCreate(ReadingActivity.java:101) 
at android.app.Activity.performCreate(Activity.java:5231) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
at android.app.ActivityThread.access$800(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5017) 
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:779) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
at dalvik.system.NativeStart.main(Native Method) 
09-26 16:24:24.185 2365-2365/MY_PACKAGE_NAME E/ActivityThread: Failed to find provider info for com.google.android.gms.chimera 

MISE À JOUR:

est ici la classe ReadingActivity:

public class ReadingActivity extends AppCompatActivity { 


    private SurfaceView camView; 

    private CameraSource camSource; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_reading); 


    camView = (SurfaceView) findViewById(R.id.scnView); 

TextRecognizer txtRecognizer = new TextRecognizer.Builder(getApplicationContext()).build(); 

if (!txtRecognizer.isOperational()) { 

      // showing an error message 
      Toast.makeText(this ,"FALSE" ,Toast.LENGTH_SHORT).show(); 


     } else { 


      camSource = new CameraSource.Builder(getApplicationContext(), txtRecognizer) 
        .setFacing(CameraSource.CAMERA_FACING_BACK) 
        .setAutoFocusEnabled(true) 
        .setRequestedPreviewSize(1280,1024) 
        .setRequestedFps(2.0f) 
        .build(); 

      // starting cam view 
      camView.getHolder().addCallback(new SurfaceHolder.Callback() { 
       @Override 
       public void surfaceCreated(SurfaceHolder surfaceHolder) { 

        try { 

         // check if permissions is granted 
         if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 

          return; 
         } 
         // starting the camera 
         camSource.start(camView.getHolder()); 
         // starting the focus on touch method 
         initCameraFocusListener(); 

        } catch (Exception e) { 

         e.printStackTrace(); 
        } 
       } 

       @Override 
       public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { 

       } 

       @Override 
       public void surfaceDestroyed(SurfaceHolder surfaceHolder) { 

        camSource.stop(); 
       } 
      }); 


      txtRecognizer.setProcessor(new Detector.Processor<TextBlock>() { 
       @Override 
       public void release() { 

       } 

       @Override 
       public void receiveDetections(Detector.Detections<TextBlock> detections) { 

        final SparseArray<TextBlock> items = detections.getDetectedItems(); 

        if (items.size() != 0) { 


         /// dealing with the results here 



        } 

       } 
      }); 

     } 
    } 
} 

i testé 4 android 4.3 et 4.4 dispositifs et même problème. ils ont tous un bon espace de stockage gratuit. une idée pour résoudre ce problème?

+0

Essayez d'utiliser 'compiler 'com.google.android.gms: play-services: 11.4.0'' –

+0

cette version ne fonctionne pas sur mon studio android je n' Je ne sais pas pourquoi? J'ai mis à jour mon studio android mais toujours .. –

+0

ok j'ai juste essayé votre suggestion mais le problème toujours dessus. –

Répondre

1

Mettez à jour les services Google Play sur vos appareils.

Peut-être le même problème que voici: https://github.com/googlesamples/android-UniversalMusicPlayer/issues/97

+0

est-ce que google play services est installé par défaut sur tous les appareils? ou devrais-je demander à mes utilisateurs de le télécharger manuellement? –

+0

Normalement, il est installé sur la plupart des appareils et mis à jour automatiquement. Mais en même temps vous pouvez toujours trouver des téléphones chinois bon marché sans cela ... Notez aussi qu'il n'est pas installé sur des simulateurs (btw, vous pouvez l'installer manuellement avec http://opengapps.org) –

+0

merci beaucoup Anton! Je vais mettre ce message d'erreur dans mon application, espérons que les utilisateurs vont résoudre le problème quand ils le mettent à jour. –