美文网首页
AndroidStudio的那些奇怪异常

AndroidStudio的那些奇怪异常

作者: 猿规 | 来源:发表于2021-12-31 11:10 被阅读0次
    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,然后你去搜索这个域名就会发现被禁了。

    所以很简单,注释掉这个域名开头的引用,尝试编译,通过。

    记录更新中。。。

    相关文章

      网友评论

          本文标题:AndroidStudio的那些奇怪异常

          本文链接:https://www.haomeiwen.com/subject/kbdgqrtx.html