据我所知,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在指令(阅读帖子上的链接)说不应该抛出此异常时抛出此异常.
是否有一个git gui工具来检查和提交cloud9编辑器中的更改?我是否必须使用git status和git diff?
我遇到了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类没有验证,则对象将自动保存到数据库中.我该如何防止这种行为?
我今天正在测试一个片段
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) 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.除了铸造之外还有其他方法吗?
android ×1
associations ×1
cloud9-ide ×1
devise ×1
generic-list ×1
generics ×1
git ×1
java ×1
ruby ×1
sti ×1