Avrdude repeated errors with leonardo

#include <Joystick.h>
#include <MPU6050_light.h>
#include <EEPROM.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width,  in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

Joystick_ Joystick;
MPU6050 mpu(Wire);

int zAxis_ = 0; 
int xAxis_ = 0;                    
int yAxis_ = 0; 
int AcX, AcY, AcZ;
int i = 0;      

void setup()
{
  Joystick.begin();
  Serial.begin(9600);
  pinMode(0, INPUT_PULLUP);
  pinMode(1, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
  pinMode(8, INPUT_PULLUP);
  pinMode(9, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT_PULLUP);
  pinMode(13, INPUT_PULLUP);

    pinMode(A5, INPUT_PULLUP);

  Wire.begin();
  
  byte status = mpu.begin();
  Serial.print(F("MPU6050 status: "));
  Serial.println(status);
  while(status!=0){ } // stop everything if could not connect to MPU6050
  
  Serial.println(F("Calculating offsets, do not move MPU6050"));
  delay(1000);
  mpu.calcOffsets(true,true); // gyro and accelero
  Serial.println("Done!\n");

    // initialize OLED display with address 0x3C for 128x64
  if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    while (true);
  }
    delay(2000);         // wait for initializing
  oled.clearDisplay(); // clear display
  
  }
   
void loop(){
  readbuttons();
  readplunger();
  readaccelerometer();
  updatedisplay();


 if ((!digitalRead(12) == HIGH) && (!digitalRead(13) == HIGH)){calibrate();} // joystick buttons 11 and 12 trigger calibrate

    Serial.print(F("ACCELERO  X: "));Serial.print(xAxis_);
    Serial.print("\tY: ");Serial.print(yAxis_);
    Serial.print("\tY: ");Serial.print(analogRead(A0));Serial.print(" : ");Serial.println(analogRead(A1));
    Serial.println(F("=====================================================\n"));   

    
 
delay (50);

}

void readbuttons()
{
 for (int i=0; i<2; i++) Joystick.setButton(i, !digitalRead(i));
 for (int i=4; i<14; i++) Joystick.setButton((i - 2), !digitalRead(i));
 while (!digitalRead(A5) == HIGH){
     oled.setTextSize(1);          // text size
  oled.setTextColor(WHITE);     // text color
  oled.setCursor(0, 10);        // position to display
  oled.print(("INTERUPT"));
  oled.display(); 
  oled.clearDisplay();              // show on OLED
 }
}

void readplunger()
{
zAxis_ = analogRead(A0);  
zAxis_ = map(zAxis_,0,1023,0,255);
Joystick.setZAxis(zAxis_);  
}

void readaccelerometer()
{
 mpu.update();
     AcX = (mpu.getAccX() * 100);
     AcY = (mpu.getAccY() * 100);

 xAxis_ = map(AcX,-50,50,0,255);
 Joystick.setXAxis(xAxis_);   

 yAxis_ = map(AcY,-50,50,0,255);
 Joystick.setYAxis(yAxis_); 
}

void updatedisplay()
{
  oled.setTextSize(1);          // text size
  oled.setTextColor(WHITE);     // text color
  oled.setCursor(0, 10);        // position to display
  oled.print(("X: "));oled.println(xAxis_);oled.print(("Y: "));oled.println(yAxis_);oled.print(("Z: "));oled.println(zAxis_);
  oled.display(); 
  oled.clearDisplay();              // show on OLED
}

void calibrate()
{

}