Ho creato un progetto molto semplice per testare l'integrazione di Robolectric + Data Binding + Retrolambda. Quando eseguo la prova costume, ricevo il seguente messaggio:AndroidHttpClient non trovato (durante l'esecuzione di Robolectric)
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient
class file for android.net.http.AndroidHttpClient not found
questo è abbastanza strano dato che io non uso AndroidHttpClient da nessuna parte.
L'errore si verifica qui, sulla linea "attività":
@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);
}
Il programma non usa mai AndroidHttpClient. In realtà, questo è l'intero programma:
@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("");
});
}
idee su ciò che c'è di sbagliato?
'AndroidHttpClient' è stato rimosso dall'SDK nel livello API 23, quindi se il tuo' compileSdkVersion' è 23 o superiore, ciò spiegherebbe perché la classe non viene trovata. Per quanto riguarda il motivo per cui Robolectric sta cercando di accedere a quella classe, che non posso dire. – CommonsWare
Che risolto! Stavo eseguendo i test con: "@Config (constants = BuildConfig.class, sdk = 21)". Grazie! – Technocrat
Scrivi una risposta in modo che tutti possano beneficiare –