小编Gus*_*Gus的帖子

Volley 1.1依赖于org.apache.http

据我所知,https://github.com/google/volley/wiki/Migrating-from-Apache-HTTP volley 1.1删除了对org.apache.http的强制依赖.和

"大多数使用HurlStack或Volley#newRequestQueue且minSdkVersion设置为9或更高的应用程序除了从build.gradle文件中删除useLibrary'org.apache.http.legacy'声明(如果存在)外,不需要采取任何操作."

我没有在任何地方使用org.apache.http,但是当我尝试在单元测试中做Volley.newRequestQueue(context.getApplicationContext())或新的时候HurlStack(),我得到:

java.lang.NoClassDefFoundError: org/apache/http/StatusLine
Run Code Online (Sandbox Code Playgroud)

在运行时.检查HurlStack类我看到它继承自BaseHttpStack,它显然仍然依赖于org.apache.http

import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicHttpResponse;
import org.apache.http.message.BasicStatusLine;
Run Code Online (Sandbox Code Playgroud)

所以,我没有得到它,如果使用api级别> 23的凌空,我应该包括org.apache.http吗?

解决方法:

如果我将它包含在build.gradle中,测试运行正常:

testImplementation "org.apache.httpcomponents:httpclient:4.5.5"
Run Code Online (Sandbox Code Playgroud)

注意:

这不是关于NoClassDefFoundError的一般性问题,它特别关注Volley在指令(阅读帖子上的链接)说不应该抛出此异常时抛出此异常.

android android-volley

9
推荐指数
1
解决办法
835
查看次数

是否有一个git gui工具来检查和提交cloud9编辑器中的更改?

是否有一个git gui工具来检查和提交cloud9编辑器中的更改?我是否必须使用git status和git diff?

git user-interface cloud9-ide

6
推荐指数
1
解决办法
1558
查看次数

如何与STI建立ActiveRecord关联

我遇到了AR试图建立从其他人继承的模型关联的问题.问题是在调用save方法之前,相关模型正在保存到数据库中.

我在此页面中找到了更多信息http://techspry.com/ruby_and_rails/active-records-or-push-or-concat-method/

这真的很奇怪,为什么AR会自动保存附加到关联的模型(用<<方法)?很明显,即使父元素已经存在,也必须调用save方法.我们可以阻止这种呼唤

@user.reviews.build(good_params)
Run Code Online (Sandbox Code Playgroud)

但是在关联具有层次结构的上下文中这将是一个问题,例如:如果猎人has_many:动物,而狗和猫继承动物,我们不能做

@hunter.dogs.build
@hunter.cats.build 
Run Code Online (Sandbox Code Playgroud)

相反,我们坚持

@hunter.animals << Cat.new
@hunter.animals << Dog.new 
Run Code Online (Sandbox Code Playgroud)

如果Cat/Dog类没有验证,则对象将自动保存到数据库中.我该如何防止这种行为?

ruby-on-rails associations sti

4
推荐指数
2
解决办法
4913
查看次数

"未定义的方法"变为"nil:NilClass",它不应该

我今天正在测试一个片段

unless resource.nil?
  resource = resource.becomes(Accounts::Admin)
end
Run Code Online (Sandbox Code Playgroud)

这引起了一个错误

未定义的方法`变为'为nil:NilClass

如果我这样做

unless resource.nil?
  a = resource.becomes(Accounts::Admin)
  resource = a
end
Run Code Online (Sandbox Code Playgroud)

一切顺利.

如果=首先执行运算符的右边部分有什么区别?

编辑:

发生了令人讨厌的事情,最后一行if false正在执行,但"ALOHA"从未打印过.

<%
puts "AAAA #{resource.inspect}"
if false
    puts "ALOHA"

    # this line is being executed !
    # if I comment it out the BBBB output is correct
    resource = nil
end 
puts "BBBB #{resource.inspect}"
%>
Run Code Online (Sandbox Code Playgroud)

它打印

AAAA用户ID:nil,nome:nil,endereco_id:nil,created_at:nil,updated_at:nil,email:""

BBBB无

但如果我这样做

<%
res = resource

puts "AAAA #{res.inspect}"
if false
  puts "ALOHA"
  res = nil …
Run Code Online (Sandbox Code Playgroud)

ruby devise ruby-on-rails-4

4
推荐指数
1
解决办法
266
查看次数

为什么未定义的Generics类型的Collections默认为Object,即使绑定到其他类?

class Test<G extends String>{
    public G test(){return null;}
    public List<G> tests(){return new ArrayList<>();}
}
public void doTest(Test t){
    //works fine
    String str = t.test();
    //Compile error: expected String found Object
    str = t.tests().iterator().next();
}
Run Code Online (Sandbox Code Playgroud)

我希望最后一行返回一个String实例而不是Object,因为类型G绑定到子类String.除了铸造之外还有其他方法吗?

java generics generic-list

2
推荐指数
1
解决办法
120
查看次数