The*_*eth 5 dependencies android gradle android-studio
我们在当前项目中使用的是带有Gradle插件0.11.+的Android Studio 0.6.1,我们遇到了依赖问题commons-codec
.我们从包含"加密"服务的本地Artifactory实例中引入依赖类,该服务使用以下两行代码:
byte[] encryptedOutput = cipherFactory.getEncryptCipher().doFinal(plaintext.getBytes());
byte[] encryptedCipherText = Base64.encodeBase64URLSafe(encryptedOutput);
Run Code Online (Sandbox Code Playgroud)
问题是即使我们commons-codec
在Gradle配置中定义了特定的依赖关系,我们也会得到以下异常
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64URLSafe
Run Code Online (Sandbox Code Playgroud)
起初,我们手动包括依赖"公地编解码器:公地编解码器:1.9",但根据Android的工作室,当我深入到IDE中的代码,它看起来在该方法的版本1.9,但当应用程序运行时,我们得到例外.甚至将依赖关系更改为1.4仍然会失败,即使根据Javadocs的说法,该方法何时可用.即使完全删除手动依赖也会导致同样的事情发生.
有什么方法可以找出正在运行的应用程序从哪里拉出这种依赖?这是我们目前完整的依赖列表,我找不到commons-codec
任何这些
compile files('libs/HockeySDK-3.0.2.jar')
compile files('libs/PushIOManager.jar')
compile 'commons-lang:commons-lang:2.6@jar'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.2@jar'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.2@jar'
compile 'com.google.android.gms:play-services:4.4.52'
compile 'com.mcxiaoke.volley:library:1.0.4'
compile 'fr.avianey:facebook-android-api:3.14.1@aar'
compile 'javax.validation:validation-api:1.0.0.GA'
Run Code Online (Sandbox Code Playgroud)
我担心这个类会被安装在Android SDK的某个地方,我们无法覆盖它以使用它的版本来commons-codec
允许我们使用我们的库.即使我们能做到这一点,我担心这样做可能会导致Android本身的一些基本问题.我们可以(而且目前做的)有拉升到我们的应用程序,加密服务类的源和调整其使用适当当量,但这意味着我们做出改变,以一种或另一种版本的任何时候,我们不得不保持他们同步.
有任何想法吗?
更新:在这种特定情况下似乎工作的是扫描Gradle构建文件中的依赖项,一旦找到您要查找的依赖项,覆盖就是您要使用的版本.例如:
def versionOverrides = [
"commons-codec:commons-codec": "1.9",
]
subprojects {
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]
if (overrideVersion != null && details.requested.version != overrideVersion) {
logger.info "Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion"
details.useVersion overrideVersion
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5364 次 |
最近记录: |