首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到AndroidHttpClient (运行Robolectric时)

找不到AndroidHttpClient (运行Robolectric时)
EN

Stack Overflow用户
提问于 2015-09-24 10:53:21
回答 5查看 14.2K关注 0票数 31

我已经建立了一个非常简单的项目来测试Robolectric + Data Binding + Retrolambda的集成。当我运行测试服时,我会收到以下消息:

代码语言:javascript
复制
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient
class file for android.net.http.AndroidHttpClient not found

这很奇怪,因为我在任何地方都不使用AndroidHttpClient。

错误发生在这里,在“活动”行上:

代码语言:javascript
复制
@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。事实上,这就是整个计划:

代码语言:javascript
复制
@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("");
    });
}

关于什么问题的想法?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-10-01 10:12:39

AndroidHttpClient已从构建工具的v23中的SDK中删除。

当Robolectric针对早期版本运行时,它希望它在那里,这就是为什么您会看到这个错误。

现在,您可以将它添加回:

代码语言:javascript
复制
android {
    useLibrary 'org.apache.http.legacy'
}

作为详细的这里

有一个GitHub票证为Robolectric打开来解决这个问题。您可以跟踪线程/票证这里

更新:

正如一些人正确指出的那样,更好的方法是在测试资源中创建一个类android.net.http.AndroidHttpClient。这将是一个首选的方法,因为您只是为了适应测试而修改测试源,而不是产品代码。

票数 48
EN

Stack Overflow用户

发布于 2015-10-02 22:56:53

我刚刚在我的测试源中添加了假类android.net.http.AndroidHttpClient。它暂时解决了这个问题。等待Robolectric被更新

票数 17
EN

Stack Overflow用户

发布于 2015-09-25 07:13:45

明显的问题和解决办法:

在APILevel23中,AndroidHttpClient被从SDK中删除,而Robolectric被设置为使用SDK 21运行测试:

代码语言:javascript
复制
AndroidHttpClient was removed from the SDK in API Level 23
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32759529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档