我已经建立了一个非常简单的项目,用于测试Robolectric + Data Binding + Retrolambda的集成。当我运行测试套件时,我会收到以下消息:
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient
class file for android.net.http.AndroidHttpClient not found
这很奇怪,因为我没有在任何地方使用AndroidHttpClient。
错误出现在这里,在“activity”那一行:
@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中删除,因此如果您的compileSdkVersion
为23或更高版本,则可以解释为什么找不到该类。至于为什么Robolectric试图访问该类,我无法说。 - CommonsWare