Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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 Proguard与应用内购买;“重复邮政编码输入”;错误_Android_In App Purchase_Proguard_In App Billing - Fatal编程技术网

Android Proguard与应用内购买;“重复邮政编码输入”;错误

Android Proguard与应用内购买;“重复邮政编码输入”;错误,android,in-app-purchase,proguard,in-app-billing,Android,In App Purchase,Proguard,In App Billing,我正在使用包括一个文件的应用内计费(按照developer.android.com执行步骤) InAppBillingService.aidl 正如这里所建议的-> 出于安全原因,我们需要使用progaud混淆代码 现在,导出启用proguard的已签名apk会出现以下错误 重复的zip条目[android_6861407322325970495.jar:com/android/vending/billing/iInapBillingService$Stub$Proxy.class] 如有任何想

我正在使用包括一个文件的应用内计费(按照developer.android.com执行步骤) InAppBillingService.aidl

正如这里所建议的-> 出于安全原因,我们需要使用progaud混淆代码

现在,导出启用proguard的已签名apk会出现以下错误

重复的zip条目[android_6861407322325970495.jar:com/android/vending/billing/iInapBillingService$Stub$Proxy.class]

如有任何想法/建议,将不胜感激。 谢谢

更新: 以下是完整的跟踪

java.io.IOException: Can't write [C:\Users\<Name>\AppData\Local\Temp\android_2083818169284424504.jar] (Can't read [C:\Users\<Name>\AppData\Local\Temp\android_6558830429113811056.jar] (Duplicate zip entry [android_6558830429113811056.jar:com/android/vending/billing/IInAppBillingService$Stub$Proxy.class]))
at proguard.OutputWriter.writeOutput(OutputWriter.java:264)
at proguard.OutputWriter.execute(OutputWriter.java:160)
at proguard.ProGuard.writeOutput(ProGuard.java:372)
at proguard.ProGuard.execute(ProGuard.java:153)
at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't read [C:\Users\<Name>\AppData\Local\Temp\android_6558830429113811056.jar] (Duplicate zip entry [android_6558830429113811056.jar:com/android/vending/billing/IInAppBillingService$Stub$Proxy.class])
at proguard.InputReader.readInput(InputReader.java:230)
at proguard.InputReader.readInput(InputReader.java:200)
at proguard.OutputWriter.writeOutput(OutputWriter.java:253)
... 4 more
Caused by: java.io.IOException: Duplicate zip entry [android_6558830429113811056.jar:com/android/vending/billing/IInAppBillingService$Stub$Proxy.class]
at proguard.io.JarWriter.getOutputStream(JarWriter.java:139)
at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:105)
at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:92)
at proguard.io.ClassRewriter.read(ClassRewriter.java:68)
at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
at proguard.io.JarReader.read(JarReader.java:65)
at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
at proguard.InputReader.readInput(InputReader.java:226)
... 6 more
java.io.IOException:无法写入[C:\Users\\AppData\Local\Temp\android\u 20838169284424504.jar](无法读取[C:\Users\\AppData\Local\Temp\android\u 6558830429113811056.jar](重复的zip条目[android\u 655883042911381056.jar:com/android/napping/billingservice$Stub$Proxy.class]))
在proguard.OutputWriter.writeOutput(OutputWriter.java:264)
在proguard.OutputWriter.execute处(OutputWriter.java:160)
在proguard.proguard.writeOutput(proguard.java:372)
在proguard.proguard.execute(proguard.java:153)
位于proguard.proguard.main(proguard.java:492)
原因:java.io.IOException:无法读取[C:\Users\\AppData\Local\Temp\android6558830429113811056.jar](重复的zip条目[android6558830429113811056.jar:com/android/vending/billingservice$Stub$Proxy.class])
在proguard.InputReader.readInput(InputReader.java:230)
在proguard.InputReader.readInput(InputReader.java:200)
在proguard.OutputWriter.writeOutput(OutputWriter.java:253)
... 4更多
原因:java.io.IOException:重复的zip条目[android6558830429113811056.jar:com/android/vending/billing/IInAppBillingService$Stub$Proxy.class]
位于proguard.io.JarWriter.getOutputStream(JarWriter.java:139)
在proguard.io.FilteredataEntryWriter.getOutputStream(FilteredataEntryWriter.java:105)中
在proguard.io.FilteredataEntryWriter.getOutputStream(FilteredataEntryWriter.java:92)中
在proguard.io.ClassRewriter.read(ClassRewriter.java:68)
在proguard.io.filteredataentryreader.read(filteredataentryreader.java:87)
位于proguard.io.JarReader.read(JarReader.java:65)
在proguard.io.directoryppump.readFiles(directoryppump.java:65)
在proguard.io.directoryppump.pumpdata条目(directoryppump.java:53)中
在proguard.InputReader.readInput中(InputReader.java:226)
... 还有6个

很可能确实存在重复条目。可能有些库既可以作为依赖项使用,也可以作为子目录中的副本使用。即使没有proguard,也可能显示错误

应该有中间的apk-s,你可以试着看看最新的apk里面有什么

我还建议尝试从命令行构建。(OTOH,上次我尝试时遇到了非常非信息性的错误,类似于“null returned 1”,也就是说,来自未知组件的非零错误代码,日志中有一些信息性更强的错误。)


您还可以尝试手动删除错误消息(在窗口中选择它们(仅叶,而不是根),然后按“Del”),清理项目并重新构建它。

如果您的ProGuard配置中有
-injars bin/classes
,请尝试删除它。

您是否尝试使用
-verbose
选项运行ProGuard?您可以准确地看到正在添加的复制库的内容(以及时间)。

也许这对您有所帮助

根据ProGuard文件:

警告:无法写入资源。。。重复的邮政编码条目 您的输入jar包含多个同名的资源文件。ProGuard继续照常复制资源文件,跳过 具有以前使用过的名称的任何文件。同样,警告可能是错误的 但有一些问题的迹象,因此建议移除 复制品。一种方便的方法是在 输入罐。没有关闭这些警告的选项

在库jar Android6558830429113811056.jar中有一个重复的资源条目“IInAppBillingService$Stub$Proxy.class”

您可以尝试使用
-outjars

-outjars类路径 指定输出JAR(或WAR、EAR、ZIP或目录)的名称。已处理的前一个输入选项的输入 将被写入指定的jar。这允许您收集 将输入jar组的内容转换为相应的输出组 罐。此外,可以过滤输出条目,如中所述 过滤器部分。每个已处理的类文件或资源文件都是 然后使用匹配的筛选器写入第一个输出条目,在 输出jar的组

必须避免让输出文件覆盖任何输入文件。为了更好 可读性,可以使用多个-outjars选项指定类路径条目。 如果没有任何-outjars选项,就不会写入jar


或者,如果您使用的是
-injars
,您可以配置一个

,谢谢您的回复。清理/重新构建不起任何作用。此外,它不是编译时错误,没有progaud,一切都很好。无法删除该错误。当使用密钥库签名时应用真正的模糊处理时,会出现错误。谢谢你解决了吗-在我的情况下,injars不起作用