Android Studio不能添加百分比布局的依赖,书和AS不一样,老报错,怎么弄?急~~~

第一张是书上的,第二张我敲的,第三张报的错。求大神指点!!

我正好也在看这本书,这里也遇到同样的问题,不过仔细对比书上,可以看到书上的定义有:

compile ‘com.android.support:appcompat-v7:24.2.1’

compile 'com.android.support:percent:24.2.1'

这里其实和大多数遇到问题的同学都会有同一个问题,按照书上直接去添加compile 'com.android.support:percent:24.2.1' 这句话会报错,

从上面的报错可以看到compile 这个命令已经过时,已被implementation和api取代,当然题主这里也发现了,就改为了api,

于是将compile改为了api,然后sync一下,发现没有报错,但是依旧标红,如下图:

然后在去看看为什么标红?(这里大家可以尝试换成implementation,其实报错是一样的,不过说到底是可以忽略的)

This support library should not use a different version (24) than the compileSdkVersion (28) less... (Ctrl+F1) 
Inspection info:There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion).  Issue id: GradleCompatible

翻一下大概意思是(直接用翻译工具):

这个支持库不应该使用与编译版本(28)不同的版本(24)。(Ctrl + F1)

检查信息:有些库或工具与库的组合不兼容,或可能导致错误。这样的不兼容性之一是编译的Android支持库版本不是最新的版本(特别是低于targetSdkVersion的版本)。问题id: GradleCompatible

这里就是说你的版本不一致一个是28一个24,说的就是

implementation 'com.android.support:appcompat-v7:28.0.0'和api 'com.android.support:percent:24.2.1'这两个后缀要同步,把它改为

implementation 'com.android.support:percent:28.0.0'就可以了,只要版本号一样就可以了,

再来说一下题主第三张截图的报错,这个我之前有遇到,那时候觉得是自己无意间动了配置造成的,又不想去花时间搜索答案,就把AS卸载干净 并把user下的生成的文件也删掉重装一遍就好了,不过现在看来网上其它大神有解决的思路可以参照网页链接

最后虽然问题有点久了,但是若以后其他人遇到也好参照一下,哈哈

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-07

去sdk目录\extras\android\m2repository\com\android\support\percent

查看版本号

追问

我看了啊,你看我代码上的就是改成26.0.0-alpha1了,可是还是报错啊。。。。。。

追答

你那写错了 support 你写成 supprot了
还有建议使用implementation,api在必要的情况下使用

追问

额,感谢纠错。。。

我改过来后原来的代码可以正常运行了,但是加入按钮后又报错了- -

第一张图片有一行代码还是显示灰色,没加按钮之前也是灰色,这是为啥啊。。

追答

把 android:layout_widthPercent="50"和android:layout_heightPercent="50"的android改成app

本回答被提问者采纳
第2个回答  2018-03-14
我看阁下看的书似乎是“第一行代码”,不知道你有没有遇见这样的问题,在编写百分比布局代码过程中,app:layout_widthPercent="50%"会导致程序无响应,请问你遇到这个问题了吗?怎么 解决的,谢谢
第3个回答  2018-03-06
你和书上写的不一样,api 是什么鬼?不应该是compile或者implementation ?追问

这两个我都试过了 都不行 报一样的错

追答

那就再看看你的 名字有没有写错,看看具体的报错,翻译一看看什么意思,然后直接搜错误