将jar转换为dex时保留文件夹

时间:2015-08-28 06:48:31

标签: android jar dx

我想将我的jar转换为dex:dx --dex --output=file.dex file.jar。在file.jar存在文件夹cnf/中,其中包含我的类所需的配置文件。但是在结果dex文件中没有文件夹cnf/

如何在转换时将所有文件和文件夹保存在dex文件中?

2 个答案:

答案 0 :(得分:2)

这是不可能的,没有办法在dex文件中存储任意文件。你可以得到的最接近的是创建一个" android" jar文件,将dex文件作为classes.dex条目,以及要放入其中的任何其他内容,例如cnf文件夹。

答案 1 :(得分:1)

您可以将cnf/放入APK文件中。 APK是一个ZIP存档。在设备cnf/上解压缩后,文件夹将在classpath中,因此它应该与JAR内部的工作方式相同。

  1. 构建后删除MANIFEST.MF和APK内的META-INF文件夹中的证书;

    zip -d file.apk "META-INF/*"
    
  2. 将您的资源(cnf/)添加到APK;

    aapt add -v file.apk cnf/*
    
  3. 重新签名APK。以下是使用默认调试密钥的示例:

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore file.apk androiddebugkey