2017-10-27 遇到的一点小问题
.
看到Android Studio提示可升级到3.0就随手点了一下,然后项目就报错了。
Error:Could not resolve all files for configuration ':app:funnyDebugAndroidTestRuntimeClasspath'.
> Failed to transform file 'libammsdk.jar' to match attributes {artifactType=android-classes} using transform JarTransform
> Transform output file D:\rrg\OD\Funny\base\libs\libammsdk.jar does not exist.
提示的这个库,是微信支付的。以为是jar包版本的问题,就去官网看了下,然后发现这是最新版,而且也没人反馈相似的问题。只好自己项目再仔细看看。然后发现,因为之前在使用compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
来依赖微信支付库时发现jar内容和之前最开始使用的compile files('libs/libammsdk.jar')
一样,所以就把libammsdk.jar
这个jar包删掉了,但依赖语句忘记删除了。这个在2.3.3版本时竟然没报错,也能正常编译。所以把compile files('libs/libammsdk.jar')
这句删掉就可以了。
然后,发现新依赖库都是默认的使用implementation,如果需要依赖被再上层引用可以改成api,具体区别网上很多。
.
然后就是提示:
Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
具体原因和说明网上一搜很多,因为很多大神早就用上了beta版。照着网上说的在build.gradle
的defaultConfig
节点里加了flavorDimensions "versionCode"
就好了
.
运行一个demo时遇到了个提示
Error:Execution failed for task ':app:javaPreCompileDebug'.
> Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
- butterknife-7.0.1.jar (com.jakewharton:butterknife:7.0.1)
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior. Note that this option is deprecated and will be removed in the future.
See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.
按照网上说的,在build.gradle
的defaultConfig
节点里加上
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
运行是可以。不过看错误提示和网上搜索的信息,都不建议这样。
试着把includeCompileClasspath = true
改成 includeCompileClasspath = false
,能正常编译,但运行时一直白屏。估计是butterknife
问题,因为只是demo用到,懒得深究,以后遇到再好好看看。
.
升级后还遇到些小问题,不过顺手解决了,就没记录下来。类似文章网上已经很多了。