Saya telah menyiapkan proyek yang sangat sederhana untuk menguji integrasi Robolectric + Data Binding + Retrolambda. Ketika saya menjalankan test suit, saya mendapatkan pesan berikut:
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient
class file for android.net.http.AndroidHttpClient not found
Ini cukup aneh karena saya tidak menggunakan AndroidHttpClient di mana pun.
Kesalahan terjadi di sini, pada baris "aktivitas":
@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);
}
Program ini tidak pernah menggunakan AndroidHttpClient. Sebenarnya, ini keseluruhan programnya:
@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("");
});
}
Gagasan tentang apa yang salah?
AndroidHttpClient
telah dihapus dari SDK di API Level 23, jadi jikacompileSdkVersion
Anda 23 atau lebih tinggi, itu akan menjelaskan mengapa kelas tersebut tidak ditemukan. Mengapa Robolectric mencoba mengakses kelas itu, saya tidak bisa mengatakannya. - person CommonsWare   schedule 24.09.2015