ฉันได้จัดทำโปรเจ็กต์ง่ายๆ เพื่อทดสอบการรวม Robolectric + Data Binding + Retrolambda เมื่อฉันรันชุดทดสอบ ฉันได้รับข้อความต่อไปนี้:
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient
class file for android.net.http.AndroidHttpClient not found
นี่ค่อนข้างแปลกเพราะฉันไม่ได้ใช้ AndroidHttpClient เลย
เกิดข้อผิดพลาดที่นี่ในบรรทัด "กิจกรรม":
@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);
}
โปรแกรมไม่เคยใช้ AndroidHttpClient อันที่จริงนี่คือโปรแกรมทั้งหมด:
@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("");
});
}
ความคิดเกี่ยวกับสิ่งที่ผิดปกติ?
AndroidHttpClient
ถูกลบออกจาก SDK ใน API ระดับ 23 ดังนั้นหากcompileSdkVersion
ของคุณคือ 23 หรือสูงกว่า นั่นจะอธิบายได้ว่าเหตุใดจึงไม่พบคลาส เหตุใด Robolectric จึงพยายามเข้าถึงคลาสนั้นซึ่งฉันไม่สามารถพูดได้ - person CommonsWare   schedule 24.09.2015