将播放服务更新到版本8.1.0或8.3.0后无法创建发布APK我遇到以下例外情况。
任何人都知道如何解决这个问题。
Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef
Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef
2 errors; aborting
Error:Execution failed for task ':project:dexRelease'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_66\bin\java.exe'' finished with non-zero exit value 1
答案 0 :(得分:4)
请参阅此Android issue。
这是一个已知的错误。官方解决方法是:
开发团队已修复您已报告的问题及其问题 将在以后的版本中提供。
暂时解决方法:问题是你需要把问题放在一边 useLibrary元素,如果你需要编译它。但如果你不这样做 编译你的代码,但你有第三方库使用它 并且你通过proguard(这是想要看到所有的挑剔 使用的类),然后我们需要将它传递给proguard 是否要求编译。
短期解决方法是要求图书馆进行编译 (然后它也会将它添加到我们给出的类路径中 proguard的)。
这基本上意味着您应该使用最新的Google Play服务重新编译所有库(包括第三方库),或者恢复为较旧的Google Play服务版本。
答案 1 :(得分:1)
我遇到了同样的错误消息。就我而言,它与Retrolambda有关。
我没有使用任何依赖Google Play服务的第三方库,所以Codos的答案很有用,但并没有为我解决问题。
事实证明,接口上的静态工厂方法导致了这个问题:
>>> [x.replace(foo, '').split('.')[0] for x in faa]
['file1', 'file2']
从界面中删除静态方法并进行清理/重建解决了我的问题。
根据文档,静态接口方法存在已知问题:Retrolambda Known limitations