2017-07-26 3 views
-2

Ich versuche, Kamera-Chiffre des Wächter-Projekts zu laufen, aber wenn ich einen Knopf drücke, ist es Kraft nah. Hier ist meine logcat Datei:java.lang.IndexOutOfBoundsException: Invalid Index 5, Größe ist 4

07-26 06: 49: 02.639 27.157 bis 27.157/info.guardianproject.iocipher.camera E/Android Runtime: fatal EXCEPTION: main Prozess: info.guardianproject. iocipher.camera, PID: 27157 java.lang.RuntimeException: Aktivität kann nicht fortgesetzt werden {info.guardianproject.iocipher.camera/info.guardianproject.iocipher.camera.StillCameraActivity}: java.lang.IndexOutOfBoundsException: Ungültiger Index 5, Größe ist 4 um android.app.ActivityThread.per formResumeActivity (ActivityThread.java:2774) bei android.app.ActivityThread.handleResumeActivity (ActivityThread.java:2803) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2238) bei android.app.ActivityThread. Zugang $ 800 (ActivityThread.java:135) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os. Looper.loop (Looper.java:136) bei android.app.ActivityThread.main (ActivityThread.java:5001) bei java.lang.reflect.Method.invokeNative (native Methode) bei java.lang.reflect.Method.invoke (Methode.java:515) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601) bei dalvik.system.NativeStart.main (native Methode) verursacht durch: java.lang.IndexOutOfBoundsException: Ungültige Index 5, Größe bei java.util.ArrayList.throwIndexOutOfBoundsException (ArrayList.java:255) bei java.util.ArrayList.get (ArrayLi st.java:308) bei info.guardianproject.iocipher.camera.CameraBaseActivity.tryCreateCamera (CameraBaseActivity.java:222) bei info.guardianproject.iocipher.camera.CameraBaseActivity.initCamera (CameraBaseActivity.java:180) bei info.guardianproject.iocipher.camera.CameraBaseActivity.onResume (CameraBaseActivity.java:174) bei info.guardianproject.iocipher.camera.StillCameraActivity.onResume (StillCameraActivity.java:107) bei android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1192) bei android.app.Acti vity.performResume (Activity.java:5310) bei android.app.ActivityThread.performResumeActivity (ActivityThread.java:2764) bei android.app.ActivityThread.handleResumeActivity (ActivityThread.java:2803) bei android.app .ActivityThread.handleLaunchActivity (ActivityThread.java:2238) bei android.app.ActivityThread.access $ 800 (ActivityThread.java:135) um android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:136) bei android.app. ActivityThread.main (ActivityThread.java:5001) bei java.lang.reflect.Method.invokeNative (native Methode) bei java.lang.reflect.Method.invoke (Method.java:515) bei com.android. internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601) bei dalvik.system.NativeStart.main (Native Methode)

und das ist mein stillcamera.java Datei:

public class StillCameraActivity extends CameraBaseActivity { 

    private String mFileBasePath = null; 

    private boolean isRequest = false; 
    private ArrayList<String> mResultList = null; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mFileBasePath = getIntent().getStringExtra("basepath"); 

     isRequest = getIntent().getAction() != null && getIntent().getAction().equals(MediaStore.ACTION_IMAGE_CAPTURE); 
     mResultList = new ArrayList<String>(); 

     button.setBackgroundResource(R.drawable.ic_action_camera); 
     buttonSelfie.setBackgroundResource(R.drawable.ic_action_switch_camera); 
    } 

    @Override 
    public void onPictureTaken(final byte[] data, Camera camera) {  
     File fileSecurePicture; 
     try { 

      if (overlayView != null) 
       overlayView.setBackgroundResource(R.color.flash); 

      long mTime = System.currentTimeMillis(); 
      fileSecurePicture = new File(mFileBasePath,"secure_image_" + mTime + ".jpg"); 

      BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileSecurePicture)); 
      out.write(data); 
      out.flush(); 
      out.close(); 

      mResultList.add(fileSecurePicture.getAbsolutePath()); 

      Intent intent = new Intent("new-media"); 
       // You can also include some extra data. 
       intent.putExtra("media", fileSecurePicture.getAbsolutePath()); 
       LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 

      Intent intentResult = new Intent().putExtra(MediaStore.EXTRA_OUTPUT, mResultList.toArray(new String[mResultList.size()]));   
      setResult(Activity.RESULT_OK, intentResult); 

      view.postDelayed(new Runnable() 
      { 
       @Override 
       public void run() { 
        overlayView.setBackgroundColor(Color.TRANSPARENT); 

        resumePreview(); 
       } 
      },100); 


     } catch (Exception e) { 
      e.printStackTrace(); 
      setResult(Activity.RESULT_CANCELED); 

     } 

    } 

    @Override 
    public void onPause() { 

     super.onPause(); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
    } 
} 
  
+0

ich das sah, aber es hat nicht geholfen mich! :( – zeinab

+0

öffnen Sie 'CameraBaseActivity.java', finden Sie die Methode' tryCreateCamera' (Zeile 222). Sie können es öffnen, indem Sie an der richtigen Stelle Ihres Logins klicken IDE – DeKaNszn

Antwort

0

Ändern Sie diese

Intent intentResult = new Intent().putExtra(MediaStore.EXTRA_OUTPUT, mResultList.toArray(new String[mResultList.size()]));   
      setResult(Activity.RESULT_OK, intentResult); 

zu

Intent intentResult = new Intent().putExtra(MediaStore.EXTRA_OUTPUT, mResultList.toArray(new String[mResultList.size() - 1]));   
      setResult(Activity.RESULT_OK, intentResult); 
+1

die Listengröße ist 5 und es beginnt von zerp, also müssen Sie setze dies in deinem Code, neue String [mResultList.size() - 1] – AbuQauod

+0

Ich habe das gemacht, aber es hat nicht funktioniert !! :( – zeinab

Verwandte Themen