Ich habe ein sehr einfaches Projekt eingerichtet, um die Integration von Robolectric + Data Binding + RetroLambda zu testen. Wenn ich den Test Anzug laufen lasse, erhalte ich folgende Meldung:AndroidHttpClient nicht gefunden (wenn Robolectric läuft)
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient
class file for android.net.http.AndroidHttpClient not found
Diese ziemlich seltsam ist, da ich AndroidHttpClient nicht überall verwenden.
Der Fehler tritt hier auf der "Aktivität" Linie:
@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 nie AndroidHttpClient verwendet. 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 falsch ist?
'AndroidHttpClient' wurde aus dem SDK in API Level 23 entfernt. Wenn also' compileSdkVersion' 23 oder höher ist, würde das erklären, warum die Klasse nicht gefunden wurde. Warum Robolectric versucht, auf diese Klasse zuzugreifen, kann ich nicht sagen. – CommonsWare
Das hat es behoben! Ich habe die Tests mit: "@Config (constants = BuildConfig.class, sdk = 21)" ausgeführt. Vielen Dank! – Technocrat
Schreiben Sie eine Antwort, damit alle profitieren –