【发布时间】:2015-12-21 22:46:46
【问题描述】:
我建立了一个非常简单的项目来测试 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在 API 级别 23 中已从 SDK 中删除,因此如果您的compileSdkVersion为 23 或更高,则可以解释为什么找不到该类。至于为什么 Robolectric 试图访问该类,我不能说。 -
解决了!我正在运行测试:“@Config(constants = BuildConfig.class, sdk = 21)”。谢谢!
-
写一个答案,让每个人都受益
标签: android data-binding robolectric retrolambda