APKTool生成APK包时遇到的错误

APKTool生成APK包时遇到的错误

//注意:.xml一般是这个文件是编译前的文件发生了变化,所以最好是找到原来的文件,替换反编译出来的
  1645人阅读  评论(0)  收藏  举报
  分类:
 

基本描述:


[java]  view plain  copy
  1. APKTool反编译后再打包出错(Error retrieving parent for item:    
  2.   
  3. No resource found that matches the given name '@*android:style/Theme.Light')   

错误日志: 


[java]  view plain  copy
  1. res\values\styles.xml:3: error: Error retrieving parent for item: No resource found that matches the given name '@*android:style/Theme.Light'.  
  2. \res\values-v11\styles.xml:3: error: Error retrieving parent for item: No resource found that matches the given name '@*android:style/Theme.Holo.Light'.  
  3. \res\values-v14\styles.xml:3: error: Error retrieving parent for item: No resource found that matches the given name '@*android:style/Theme.Holo.Light.DarkActionBar'.  
  4. Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 8, --target-sdk-version, 15, -F, C:\DOCUME~1\Me\LOCALS~1\Temp\APKTOOL8621427559288146532.tmp, -I, C:\Documents and Settings\Me\apktool\framework\1.apk, -S, E:\Tools\and_tool\AndTest\res, -M, E:\Tools\and_tool\AndTest\AndroidManifest.xml]  
  5.         at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:255)  
  6.         at brut.androlib.Androlib.buildResourcesFull(Androlib.java:324)  
  7.         at brut.androlib.Androlib.buildResources(Androlib.java:269)  
  8.         at brut.androlib.Androlib.build(Androlib.java:192)  
  9.         at brut.androlib.Androlib.build(Androlib.java:174)  
  10.         at brut.apktool.Main.cmdBuild(Main.java:188)  
  11.         at brut.apktool.Main.main(Main.java:70)  
  12. Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 8, --target-sdk-version, 15, -F, C:\DOCUME~1\Me\LOCALS~1\Temp\APKTOOL8621427559288146532.tmp, -I, C:\Documents and Settings\Me\apktool\framework\1.apk, -S, E:\Tools\and_tool\AndTest\res, -M, E:\Tools\and_tool\AndTest\AndroidManifest.xml]  
  13.         at brut.util.OS.exec(OS.java:83)  
  14.         at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:253)  
  15.         ... 6 more  

解决办法一:(我的这种情况不适用) 


看出错情形,styles.xml出错了,打开原始的XML与反编译后的XML一对比, 
发现反编译后的XML里<resources>/<style>的parent属性出错了,由原本的android:Theme.xxx变成了 
@*android:style/Theme.xxx,前面多出来@*,中间多出来style/,原因找到就好办了,将这些XML改正确, 
再打包,成了! 


参考链接:http://dreamisx.blog.163.com/blog/static/1150048392012112024649308/

解决办法二:(也不适用) 


估计是版本问题,那么解决方案就是将android sdk下android-sdk-windows\platform-tools\aapt.exe 
复制并替换到apktool.jar相同目录下,类似做法,直接将F:\android-sdk-windows\platform-tools配置为环境变量, 
删除掉原目录下aapt.exe,直接运行。 
由于在linux下开发,所以windows的sdk并未下载,用了网上朋友的aapt.exe还是不行。aapt下载见http://download.csdn.net/detail/fql_zlyy/5366841 
 
参考链接:http://blog.sina.com.cn/s/blog_4a4f9fb50101dm5d.html

我的情况解决办法: 
 观察 在我的文件系统中 生成APK的时候,会在我的文件系统上生成 /apktool/framework/1.apk文件, 
 猜想有可能是之前生成过该framework的apk(包含系统的一些theme,style等等)文件夹,再次用apkTool时,不会再次重新生成, 
 但是如果之前生成的apk于现在的需要的版本不一致,可能会出现资源找不到的问题。所以,将该目录删除后, 
 再次用apktool重新生成就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值