1.dom转xml string
参考地址
方法:
public String toXml(HashMap params) throws ParserConfigurationException, TransformerConfigurationException {
if (params == null){
return null;
}
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlVersion("1.0");
Element requestEle = document.createElement("request");
Iterator iter = params.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = params.get(key);
Element childEle = document.createElement((String) key);
childEle.setTextContent((String) val);
requestEle.appendChild(childEle);
}
document.appendChild(requestEle);
// 创建TransformerFactory对象
TransformerFactory tff = TransformerFactory.newInstance();
// 创建Transformer对象
Transformer tf = tff.newTransformer();
// 设置输出数据时换行
// tf.setOutputProperty(OutputKeys.INDENT, "yes");
//
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// 使用Transformer的transform()方法将DOM树转换成XML
String xmlString;
try {
tf.transform(new DOMSource(document), new StreamResult(bos));
xmlString = bos.toString();
} catch (TransformerException e) {
xmlString = null;
e.printStackTrace();
}
return xmlString;
}
}
2.加载.so库
由于公司项目用到的几个.so的库,自己在导入的时候遇到了几个坑,参考了这篇文章 System.loadLibrary加载so的路径问题
步骤一:在项目路径下的libs下新建armeabi文件夹,将用到的.so文件放置进去
步骤二:在项目的build.gradle添加
sourceSets.main{
jniLibs.srcDirs = ['libs'];
}
步骤三:添加权限设置,在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
注意点:检查调用方法的路径和so包中的路径是否一致,不然会出现 Native method not found 的问题
3.新建assets目录
新建的assets目录需与java在同级。
新建assets
网友评论