①
A problem occurred configuring root project
Could not resolve all artifacts for configuration ':classpath'.
Could not resolve com.baidu.mobstat:mtj-circle-plugin:latest.integration.
看到这个错误是不是觉得网络不行,或者配置文件出问题了,百度只要加个代理就能下载。
我试过一些常用的修补方法,加代理,换版本好,清缓存,都不行。
没那么简单,因为android studio喜欢声东击西,不能光看上面的错误日志。
于是,在细看一下,会发现一个提示 could not get 403,然后你去搜索这个域名就会发现被禁了。
所以很简单,注释掉这个域名开头的引用,尝试编译,通过。
②
ExoPlayerImplInternal:Source error.
UnrecognizedInputFormatException:None of the available extractors(MatroskaExtractor,FragmentedMp4Extractor,Mp4Extractor,Mp3Extractor。。。)
视频Mp4播放失败,于是看到一个异常。
找了很多,跟换了各种内核,无法解决。
于是我下载了一个demo,发现可以,但是版本差异比较大,没发对比,于是打算升级一下。
升级后,报新错,于是开始百度找资料。
Execution failed for task 'App:processDebugManifest'.
Could not get unknown property 'instantRunManifestOutputDirectory' for task 'App:processDebugManifest' of type com.android.build.gradle.tasks.ProcessApplicationManifest.
后来我找到一个哥们的笔记:微小站-笔记-百度统计编译报错 (jsc0.com),很显然异常来自于百度移动统计的冲突。
由于本项目可以弃用这个百度移动统计,我直接把百度统计干掉了,在次运行,又来了一个新的伙伴。
AAPT: error: resource android:attr/lStar not found.
到这里我有点察觉这个升级不简单了,这种编译包冲突清单合并类问题最恶心,于是我重新清除缓存,然后把编译版本换成 4.0.1,wrapper文件换成6.1.1版本。
最后确认是 appcompat 1.4.0版本引起的,因为它引入了高版本的kotlin androidx.core:core 库,所以导致编译版本等拉高,不兼容。
重新运行,又出现一个新异常。
Compilation failed; see the compiler error output for details.
下面白字提示了,还是不兼容,一下午都在改bug,一个接一个,感觉又被AndroidStudio带吭里了。
后来寻求同事的帮助,同事也跟我一起升级,一样的错误出现,连环bug。
一直到第二天,同事发现了这个关键点,就是升级后的视频库,引入了appcompat 1.4.0,于是他直接把1.4.0剔除了。
//视频播放器完整版引入
api ('com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.1.8-release-jitpack'){
exclude group: 'androidx.appcompat'
}
//是否需要ExoPlayer模式
api ('com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.1.8-release-jitpack'){
exclude group: 'androidx.appcompat'
}
然后在运行,ok了,但是我这边还是不行,发现我本地之前查找资料,把所有appcompat升级了,根本原因就是appcompat1.4.0引发的。
我把所有appcompat库回退1.2.0后,在次运行,通过了。
简直无语加吐槽,as的报错机制非常短小无力。
③
Build was configured to prefer settings repositories over project repositories but repository 'flatDir' was added by build file 'app\build.gradle'
新建一个项目,在配置文件引用aar包,需要设置 flatDir 。
然而设置完后就会出现编译异常,但是在我原来的项目上设置一点问题没有。
于是我发现在 settings.gradle 配置文件上方多出一串配置,这串配置目前发现可以简化version名称书写。
于是我去除了这串疑惑的配置,然后在把版本名称改回原来的。
在次运行,异常变了,说明有效果,但是需要进一步验证,异常如下。
比较常见了,虽然这个异常提示依旧吭爹,什么无法解析,AS的老毛病了,看不懂才显得有水平,于是百度一下,解决方案就是配置文件上添加 allprojects 。
在次运行,很丝滑,原来这问题就是as升级了配置文件,导致兼容不行,这个锅只能我们背了。
④
UnsupportedOperationException: Can't convert value at index 2 to color: type=0x1
看似不明觉厉,不知道AS相表达什么,转换颜色异常?首次碰到这种问题肯定是不能靠猜的,于是百度了一下。
有人碰到过这种问题,记得当时对方碰到的是资源文件目录,在指定的尺寸中找不到改尺寸的资源,看来确实是找不到资源文件,但是我这边项目确实都有引用。
于是又去看了一下资源文件,所幸我这是新项目,没几个资源文件,很快就找到了。
在我的主题资源下引用了深色模式中的资源,而且只存在深色模式,所以正常模式下读取不到。
很简单,改过来就行了。
⑤
undefined reference to '__android_log_print'
很多人碰到过这个异常,但是大部分资料可能是说Android.mk,而不是CMakeList。
明明已经定义了宏,而且也在 target_link_libraries 中添加过,但是就是不行,排除语法错误,有的人说是配置gradle ldLibs "log",但是不管用,还有其它的方案,但是初学者也看不懂,有的文章可能说到了点子上,但是不友好。
比如说创建多个对应的CMakeList配置文件,一一对应,其实有点眉目了,但是这显然不是友好的解决方案,其实到这里就很清晰了,CMakeList配置文件没加进去,没有真实引入成功。
如下图,错误的添加:
正确的是一个个添加,在运行,问题解决。
⑥
could not find extension implementation class org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager
又是一个大坑,这个错误是我使用了 buildSrc 导致的,一开始加入进去时运行,没问题,但是此时你清除缓存后在试下,发现不行了,sync也一样,报错。
gradle修改添加lib因为sync不了,无法添加,但是又不影响你运行,是真的吭逼。
后来研究了好久,删了很多旧操作,最后删的只剩一个壳了还是这样。
后来直接删库,重新拉取,发现可以了,然后你一清缓存又不行了。
很显然,问题不是出现在你添加的代码上,然后就开始对比gradle配置了,更换版本移除不必要的类库。
最后发现在gradle.properties文件中发现有一些配置的变量参数,这个文件参数不能动。
本来项目里配置了几个版本变量用于gradle配置的,根本不影响项目,但是你添加了buildsrc就会导致GradleBuildRootsManager,实在不明白为什么会这样,而且这个错网上基本没有资料可查,碰到过的人也极少。
⑦
x5浏览器内核初始化失败 X5WebView onViewInitFinished is false
使用x5浏览器时,浏览器第一次初始化需要去下载内核包,时间比较长,可能一两分钟,在次期间,你加载webview的话会导致x5浏览器初始化失败,需要重启app在次加载才行,这个没办法,只能通过配置webview去解决、
需要去设置webview的 setBlockNetworkImage 属性,设置false好像会导致部分h5图片失败,所以一般设置true的,但是如果x5初始化失败了还是true就不行了,改成false,图片正常加载,这里根据x5的成功失败去设置的。
⑧
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr *
线程中多次 wait() 就会导致这个异常,很多人通过加 try catch去解决,这边建议自己控制一下,不需要额外添加异常开销。
⑨
A problem occurred configuring root project
Could not resolve all artifacts for configuration ':classpath'.
Could not resolve com.baidu.mobstat:mtj-circle-plugin:latest.integration.
看到这个错误是不是觉得网络不行,或者配置文件出问题了,百度只要加个代理就能下载。
我试过一些常用的修补方法,加代理,换版本好,清缓存,都不行。
没那么简单,因为android studio喜欢声东击西,不能光看上面的错误日志。
于是,在细看一下,会发现一个提示 Could not GET https://dl.bintray.com** Received status code 502 from server: Bad Gateway,然后你去搜索这个域名就会发现被禁了。
所以很简单,注释掉这个域名开头的引用,尝试编译,通过。
记录更新中。。。
网友评论