简答题网站建设步骤,网站登录验证码怎么做,个旧网络推广,网页游戏排行榜2024手动修改Android的AndroidManifest.xml中package值(包名)很简单#xff0c;手动修改即可。但是项目中需要把Android的项目源代码放到服务器端在客户下载时候动态编译生成#xff0c;且生成的app签名相同但包名不同(若此时包名相同就是相同的app)#xff0c;这种需求需要在服…手动修改Android的AndroidManifest.xml中package值(包名)很简单手动修改即可。但是项目中需要把Android的项目源代码放到服务器端在客户下载时候动态编译生成且生成的app签名相同但包名不同(若此时包名相同就是相同的app)这种需求需要在服务器端自动化编译Android源代码时候自动调整AndroidManifest.xml中package值才能实现。查阅相关资料结合Java对XML文件的读写技术写了一个方法让服务器端在编译之前预加载修改AndroidManifest.xml中的package值。// 参数// File fileAndroidManifest.xml文件。// String packagename新的包名。public static void operationAndroidManifestXML(File file, String packagename) {DocumentBuilderFactory factory DocumentBuilderFactory.newInstance();factory.setIgnoringElementContentWhitespace(true);DocumentBuilder db;try {db factory.newDocumentBuilder();Document doc db.parse(file);NodeList nl doc.getChildNodes();// 只有一个node即 manifest// item(0)即为 manifest。Node node nl.item(0);// 获得manifest的各个属性NamedNodeMap map node.getAttributes();// 重新设置package的值map.getNamedItem(package).setNodeValue(packagename);// 写saveXml(file, doc);} catch (Exception e) {e.printStackTrace();}}// 保存到XML文件private static void saveXml(File file, Document doc) {TransformerFactory transFactory TransformerFactory.newInstance();try {Transformer transformer transFactory.newTransformer();transformer.setOutputProperty(indent, yes);DOMSource source new DOMSource();source.setNode(doc);StreamResult result new StreamResult();// 覆盖原文件result.setOutputStream(new FileOutputStream(file));transformer.transform(source, result);} catch (Exception e) {e.printStackTrace();}}