源代码
Library https://bitbucket.org/victorapoyan/renamingpackagedependency
使用库的项目 https://bitbucket.org/victorapoyan/renamingpackagedependencyusage
问题描述
我正在使用 .jar 库在该库中编写 Android 库 (.aar)。
为了避免依赖重复,我使用 ShadowJar 插件进行重新打包,如下所示:
task shadowJar(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
System.out.println("Relocating packages...")
relocate 'retrofit' , 'com.codecraft.retrofit'
relocate 'org.simpleframework.xml', 'com.codecraft.org.simpleframework.xml'
relocate 'com.squareup.okhttp' , 'com.codecraft.com.squareup.okhttp'
}
在使用 Android 库 (.aar) 的应用程序中,我具有以下所示库的依赖项,只是为了测试我是否没有依赖项重复问题。
dependencies {
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
compile 'com.squareup.retrofit:converter-simplexml:2.0.0-beta1'
}
但是当我尝试在 Android 上运行应用程序时,出现以下错误
错误:警告:忽略匿名内部的 InnerClasses 属性
类错误:(com.bea.xml.stream.util.CircularQueue$1) 不
带有 Error:关联的 EnclosureMethod 属性。这个班
可能是由错误产生的:编译器没有针对
现代 .class 文件格式。推荐的错误:解决方案是
使用最新的编译器从源代码重新编译类
错误:并且没有指定任何“-target”类型选项。这
忽略错误的后果:此警告是反射性的
对该类的操作将不正确 Error:表明它是not一个内部类。错误:处理“javax/xml/XMLConstants.class”时出现问题:错误:不明智或错误使用
核心类(java.* 或 javax.*)错误:未构建核心时
图书馆。错误:这通常是由于无意中包含了一个核心
库文件错误:在您的应用程序项目中,使用 IDE 时
(例如错误:Eclipse)。如果你确定你不是故意的
定义一个 Error:core 类,那么这是最可能的解释
错误是什么:正在发生。错误:但是,您可能实际上正在尝试
在核心 Error:namespace 中定义一个类,其来源是您
例如,可能已采取错误:来自非 Android 虚拟机
项目。这将大多数错误:肯定不起作用。至少,它
危害错误:您的应用程序与未来版本的兼容性
平台的。错误:它的合法性也常常值得怀疑。
错误:如果你真的打算构建一个核心库——这只是
错误:适合作为创建完整虚拟机的一部分
错误:分发,而不是编译应用程序——然后使用
错误:“--core-library”选项可以抑制此错误消息。
错误:如果您继续使用“--core-library”,但实际上是
错误:构建一个应用程序,然后预先警告您的
应用程序错误:在某些时候仍然无法构建或运行。
请注意错误:为愤怒的顾客做好准备,例如,
您的错误:应用程序一旦升级就停止运行
操作错误:系统。你将要为这个问题负责。
错误:如果您合法使用的某些代码恰好位于
错误:核心包,那么您拥有的最简单安全的替代方案是
错误:重新打包该代码。也就是说,将有问题的类移动到
错误:您自己的包命名空间。这意味着他们永远不会
错误:与核心系统类冲突。 JarJar 是一个工具,可以
帮助错误:你在这方面的努力。如果您发现自己无法做到这一点,
然后错误:这表明您所在的路径将
最终错误:导致痛苦、痛苦、悲伤和哀叹。
错误:1 个错误;中止 :app:transformClassesWithDexForDebug 失败
错误:任务执行失败
':app:transformClassesWithDexForDebug'。
com.android.build.api.transform.TransformException:java.lang.RuntimeException:
com.android.ide.common.process.ProcessException:
java.util.concurrent.ExecutionException:
java.lang.UnsupportedOperationException
请注意如果我仅添加改造依赖项,则不会出现此问题
dependencies {
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
}
原因是什么以及如何解决此错误?