AndroidHttpClient nicht gefunden (beim Ausführen von Robolectric)

Ich habe ein sehr einfaches Projekt eingerichtet, um die Integration von Robolectric + Data Binding + Retrolambda zu testen. Wenn ich den Testanzug laufe, bekomme ich folgende Meldung:

Error:(30, 30) Gradle: error: cannot access AndroidHttpClient class file for android.net.http.AndroidHttpClient not found 

Das ist ziemlich seltsam, da ich AndroidHttpClient überhaupt nicht benutzt habe.

  • Ist es sicher, nur armeabi-v7a für Android 4 und höher zu unterstützen?
  • Wie konvertiert man TextView zu EditText in Android?
  • Wie schließe ich alle Aktivitäten meiner Bewerbung?
  • Android GCM-Nachricht erfolgreich gesendet, aber nicht erhalten
  • Was ist ScrimInsetsFrameLayout?
  • Android - nicht in der Lage, eine Datei in E-Mail zu binden

  • Der Fehler tritt hier auf der Zeile "Aktivität" auf:

     @Before public void setup() { activity = Robolectric.setupActivity(MainActivity.class); // Error on this line textView = (TextView) shadowOf(activity).findViewById(R.id.textView); button = (Button) activity.findViewById(R.id.button); editText = (EditText) activity.findViewById(R.id.editText); } 

    Das Programm verwendet niemals AndroidHttpClient. In der Tat ist dies das gesamte Programm:

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); binding.setUser(new User()); binding.button.setOnClickListener((v) -> { binding.textView.setText(String.format("Hello, %s!", binding.editText.getText())); binding.editText.setText(""); }); } 

    Ideen, was ist falsch?

  • Das Erkennungsgerät für das Debugging (ADB) funktioniert nicht
  • Androids ObjectAnimator.ofFloat funktioniert nicht richtig
  • Android Studio: 'Wrap in Container' im XML-Layout
  • Apk manuell auf Gerät installieren: Fehler 103
  • Verwenden von Datenbindungen in android error: package *. *. Databinding existiert nicht
  • Wie bekomme ich User-Login nach Login mit LinkedIn
  • 4 Solutions collect form web for “AndroidHttpClient nicht gefunden (beim Ausführen von Robolectric)”

    AndroidHttpClient wurde aus dem SDK in v23 der Build-Tools entfernt.

    Da Robolectric gegen frühere Versionen läuft, erwartet es, dass es dort ist, weshalb du diesen Fehler siehst.

    Jetzt können Sie es wieder hinzufügen:

     android { useLibrary 'org.apache.http.legacy' } 

    Wie hier detailliert

    Es gibt ein GitHub Ticket für Robolectric offen, um das zu beheben. Du kannst dem Thread / Ticket hier folgen.

    Ich habe gerade fake Klasse android.net.http.AndroidHttpClient in meine android.net.http.AndroidHttpClient hinzugefügt. Und es hat das Problem für jetzt gelöst. Warten auf Robolectric aktualisiert werden

    Scheinbares Problem und Lösung:

    AndroidHttpClient wurde aus dem SDK in API Level 23 entfernt, während Robolectric Tests mit SDK 21 durchgeführt wurde:

     AndroidHttpClient was removed from the SDK in API Level 23 

    Ich war in der Lage, dieses Problem zu lösen, indem ich eine neue Klasse namens AndroidHttpClient in einem neuen Paket android.net.http . Danach musste ich meine Unit Test Klasse mit @Config(constants = BuildConfig.class, sdks = 21) die die Tests gegen eine emulierte Version von API 21 ausführen wird, die die letzte Version von Android Robolectric unterstützt.

    Es ist derzeit ein Problem hier eröffnet, also sobald sie Version 3.1 freigeben, sollte alles gut sein und du musst diese Problemumgehung nicht nutzen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.