在Android应用程序中导入Java项目?
即使Java项目中的某些类在正常的Android项目中无法识别,我是否可以在Android项目中使用Java项目?例如javax.xml包 在我看来,有两种可能性:在Android应用程序中导入Java项目?,java,android,xml,Java,Android,Xml,即使Java项目中的某些类在正常的Android项目中无法识别,我是否可以在Android项目中使用Java项目?例如javax.xml包 在我看来,有两种可能性: 或者使用该java项目创建一个jar,并将其导入android 或者参考android中的项目(据我所知,这是可能的) 但无论如何,在我的android应用程序中,那些在java中找到但在android中找不到的类可以吗?这样行吗?非常感谢。 我制作了JavaProject,然后将它作为参考导入到我的Android项目中。我得到
Android平台提供了,但不是整个软件包(阅读了解更多细节)。通常,最简单的解决方案是编写一个与受影响Java代码相当的Android版本,它不需要缺少依赖项和两个实现,因此每个项目都使用正确的实现。最终成功了,我最大的问题是我传递给HttpPost的url,而带有SAP的ksoap2根本不适用于我
private void testCallingService() {
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
new AuthScope("ip here", port here),
new UsernamePasswordCredentials(username, password));
try {
String buffer = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:urn='namespace'><soapenv:Header/><soapenv:Body><urn:methodname><USERNAME>test</USERNAME></urn:methodname></soapenv:Body></soapenv:Envelope>";
HttpPost httppost = new HttpPost(url);
StringEntity se = new StringEntity(buffer, HTTP.UTF_8);
se.setContentType("text/xml");
httppost.setHeader("Content-Type",
"application/soap+xml;charset=UTF-8");
httppost.setEntity(se);
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope("ip", port),
new UsernamePasswordCredentials(username, password));
httpclient.setCredentialsProvider(credsProvider);
BasicHttpResponse httpResponse = (BasicHttpResponse) httpclient
.execute(httppost);
if (httpResponse.getStatusLine() != null) {
System.out.println("Http status: "
+ httpResponse.getStatusLine());
}
RequestLine requestLine = httppost.getRequestLine();
String response = getResponseBody(httpResponse); // read server response. response.getEntity().getContent();...
System.out.println("response: " + response);
} catch (IOException e) {
// TODO Auto-generated catch block
}
httpclient.getConnectionManager().shutdown();
}
private void testCallingService(){
DefaultHttpClient httpclient=新的DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
新的AuthScope(“此处为ip”,此处为端口),
新用户名密码凭据(用户名、密码));
试一试{
字符串缓冲区=“测试”;
HttpPost HttpPost=新的HttpPost(url);
StringEntity se=新的StringEntity(缓冲区,HTTP.UTF_8);
setContentType(“text/xml”);
setHeader(“内容类型”,
“应用程序/soap+xml;字符集=UTF-8”);
httppost.setEntity(se);
CredentialsProvider credsProvider=新的BasicCredentialsProvider();
credsProvider.setCredentials(新的AuthScope(“ip”),端口),
新用户名密码凭据(用户名、密码));
httpclient.setCredentialsProvider(CredProvider);
BasicHttpResponse httpResponse=(BasicHttpResponse)httpclient
.执行(httppost);
if(httpResponse.getStatusLine()!=null){
System.out.println(“Http状态:”
+httpResponse.getStatusLine());
}
RequestLine RequestLine=httppost.getRequestLine();
字符串response=getResponseBody(httpResponse);//读取服务器响应.response.getEntity().getContent();。。。
System.out.println(“响应:+response”);
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
httpclient.getConnectionManager().shutdown();
}
因此,我构建了自己的SOAP信封,将在最近的将来尝试停止这样做。创建CredentialsProvider实例并设置我的用户/通行证详细信息。服务器的状态是200,我收到了我需要的信息。一个问题是,响应显然太大(并且不会到此为止),因此我的响应被截断。现在正在努力解决这个问题。
我真的希望这能帮助别人 除非它们与android发生冲突,否则它应该可以工作。。但是它说有些东西android不喜欢。这就是我好奇的,通常它会与android冲突,因为javax.xml包不在android的默认包中,导入核心库是不可编译的。我希望导入java项目不会有同样的结果,android会抱怨这些类。将java项目的java源代码复制到android源代码文件夹中,然后检查编译错误。当您发现这些错误时,请针对这些错误发布一个问题。这将节省我们的时间,因为您提到的两个选项在实际的android平台上都不起作用。请标记为android和xml