Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用apktool构建库项目?_Android_Library Project - Fatal编程技术网

Android 如何使用apktool构建库项目?

Android 如何使用apktool构建库项目?,android,library-project,Android,Library Project,我可以使用apktool解码apk,然后为我的普通android项目重新构建 但是,当我对依赖于库项目(appcompat)的项目尝试相同的方法时,它失败了,出现了以下错误 我是否需要使用库项目进行构建?如果需要,我如何指定 $ apktool build apkdecode repack.apk I: Checking whether sources has changed... I: Smaling... I: Checking whether resources has changed..

我可以使用apktool解码apk,然后为我的普通android项目重新构建

但是,当我对依赖于库项目(appcompat)的项目尝试相同的方法时,它失败了,出现了以下错误

我是否需要使用库项目进行构建?如果需要,我如何指定

$ apktool build apkdecode repack.apk
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
/<currentdir>/apkdecode/res/values/styles.xml:59: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:99: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:146: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:176: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:192: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base.DropDownItem'.
/<currentdir>/apkdecode/res/values/styles.xml:218: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:225: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Light.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:242: error: Error retrieving parent for item: No resource found that matches the given name 'TextAppearance.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:275: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values-v14/styles.xml:50: error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.Base'.
/<currentdir>/apkdecode/res/values/styles.xml:467: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Base'.
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 8, --target-sdk-version, 11, -F, /var/folders/6l/q11hqqj57rs0lgxcx1njdlxc0000gn/T/APKTOOL2534308390228031373.tmp, -0, arsc, -I, /<toolpath>/apktool/framework/1.apk, -S, /<currentdir>/apkdecode/res, -M, /<currentdir>/apkdecode/AndroidManifest.xml]
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:358)
    at brut.androlib.Androlib.buildResources(Androlib.java:283)
    at brut.androlib.Androlib.build(Androlib.java:206)
    at brut.androlib.Androlib.build(Androlib.java:176)
    at brut.apktool.Main.cmdBuild(Main.java:228)
    at brut.apktool.Main.main(Main.java:79)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 8, --target-sdk-version, 11, -F, /var/folders/6l/q11hqqj57rs0lgxcx1njdlxc0000gn/T/APKTOOL2534308390228031373.tmp, -0, arsc, -I, /<toolpath>/apktool/framework/1.apk, -S, /<currentdir>/apkdecode/res, -M, /<currentdir>/apkdecode/AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:357)
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
    ... 5 more
Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 8, --target-sdk-version, 11, -F, /var/folders/6l/q11hqqj57rs0lgxcx1njdlxc0000gn/T/APKTOOL2534308390228031373.tmp, -0, arsc, -I, /<toolpath>/apktool/framework/1.apk, -S, /<currentdir>/apkdecode/res, -M, /<currentdir>/apkdecode/AndroidManifest.xml]
    at brut.util.OS.exec(OS.java:89)
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:355)
    ... 6 more
$apktool build apkdecode repack.apk
I:检查来源是否已更改。。。
I:斯马林。。。
I:正在检查资源是否已更改。。。
I:建筑资源。。。
//apkdecode/res/values/styles.xml:59:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:99:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:146:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:176:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:192:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base.DropDownItem”匹配的资源。
//apkdecode/res/values/styles.xml:218:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:225:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Light.Base”匹配的资源。
//apkdecode/res/values/styles.xml:242:错误:检索项的父项时出错:未找到与给定名称“TextAppearance.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:275:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values-v14/styles.xml:50:错误:检索项的父项时出错:未找到与给定名称“Widget.AppCompat.Base”匹配的资源。
//apkdecode/res/values/styles.xml:467:错误:检索项的父项时出错:未找到与给定名称“Theme.AppCompat.Base”匹配的资源。
线程“main”中的异常brut.androlib.AndrolibException:brut.androlib.AndrolibException:brut.common.BrutException:无法执行命令:[aapt,p,-min sdk version,8,-target sdk version,11,-F,/var/folders/6l/q11hqj57rs0lgxcx1njdlxc0000gn/T/APKTOOL2534308390228031373.tmp,-0,arsc,-I,//apktool/framework/1.apk,-S,//apkdecode/res M,//apkdecode/AndroidManifest.xml]
位于brut.androlib.androlib.buildResourcesFull(androlib.java:358)
位于brut.androlib.androlib.buildResources(androlib.java:283)
位于brut.androlib.androlib.build(androlib.java:206)
位于brut.androlib.androlib.build(androlib.java:176)
位于brut.apktool.Main.cmdBuild(Main.java:228)
位于brut.apktool.Main.Main(Main.java:79)
原因:brut.androlib.AndrolibException:brut.common.BrutException:无法执行命令:[aapt,p,-min sdk version,8,-target sdk version,11,-F,/var/folders/6l/q11hqj57rs0lgxcx1njdlxc0000gn/T/APKTOOL2534308390228031373.tmp,-0,arsc,-I,//apktool/framework/1.apk,-S,//apkdecode/res M,//apkdecode/AndroidManifest.xml]
位于brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:357)
位于brut.androlib.androlib.buildResourcesFull(androlib.java:336)
…还有5个
原因:brut.common.BrutException:无法执行命令:[aapt,p,-min sdk version,8,-target sdk version,11,-F,/var/folders/6l/q11hqj57rs0lgxcx1njdlxc0000gn/T/APKTOOL2534308390228031373.tmp,-0,arsc,-I,//apktool/framework/1.apk,-S,//apkdecode/res M,//apkdecode/AndroidManifest.xml]
位于brut.util.OS.exec(OS.java:89)
位于brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:355)
…还有6个

这是apktool v1(1.5.3)的问题。 有几种方法可以解决这个问题

1.编辑styles.xml。 将空的“parent”属性添加到错误行上的标记中。例如:

以前

59: <style name="Widget.AppCompat.Base.ActionBar">
if (!mParent.isNull()) {
    serializer.attribute(null, "parent", mParent.encodeAsResXmlAttr());
}
之后

3.只需使用apktool v2:)

if (!mParent.isNull()) {
    serializer.attribute(null, "parent", mParent.encodeAsResXmlAttr());
}
if (!mParent.isNull()) {
    serializer.attribute(null, "parent", mParent.encodeAsResXmlAttr());
} else if (res.getResSpec().getName().indexOf('.') != -1) {
    serializer.attribute(null, "parent", "");
}