问题:同步依赖包后报错Failed to resolve: com.github.GinRyan:NTabLayout:0.3.4

解决:maven放错位置了

方法:

gradle 7.0之前

在project: build.gradle中加入

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://jitpack.io"
        }
    }
}

注意:maven {url "https://jitpack.io"} 是加在allprojects中的

阅读全文

问题:安卓build时报错Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://sch

解决: 在两个地方理性gradle版本

方法:

更改项目 build.gradle 文件

将 classpath 'com.android.tools.build:gradle:4.1.3'
改为 classpath 'com.android.tools.build:gradle:7.0.2'

更改项目 gradle-wrapper.properties 文件

将 distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
改为 distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip

阅读全文

问题:android项目build时报错DSL element 'android.viewBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.viewBinding

解决: DSL元素的android.viewBinding。已被替换为“android.buildFeatures.viewBinding”,它将在5.0版的Android Gradle插件中被删除。

方法:

在app下的 build.gradle 文件中注释掉 viewBinding

buildFeatures {
    viewBinding true
}
//    viewBinding {
//        enabled = true
//    }

阅读全文

问题:subprocess.popen进程卡死如何解决?

解决:原因是subprocess的PIPE是有大小的。在python2.6.11之前,PIPE的大小为文件页的大小(i386上是4096),2.6.11之后变为65536.因此当输出内容超过65536,会引起阻塞。因为PIPE已经被塞满了,无法再塞进更多的数据。
解决方法是不用subprocess提供的PIPE,或者不要实时输出执行命令后的输出内容。

方法:

obj = subprocess.Popen(cmd,stdout=fileno,stderr=fileno,shell=True)
obj.communicate()

关闭输出内容

from subprocess import DEVNULL, STDOUT, check_call
check_call([cmd, arg1, arg2], stdout=DEVNULL, stderr=STDOUT)

with open(os.devnull, 'w') as fp:
    cmd = subprocess.Popen(("[command]",), stdout=fp)

阅读全文