我正好也在看这本书,这里也遇到同样的问题,不过仔细对比书上,可以看到书上的定义有:
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下的生成的文件也删掉重装一遍就好了,不过现在看来网上其它大神有解决的思路可以参照网页链接
最后虽然问题有点久了,但是若以后其他人遇到也好参照一下,哈哈
去sdk目录\extras\android\m2repository\com\android\support\percent
查看版本号
我看阁下看的书似乎是“第一行代码”,不知道你有没有遇见这样的问题,在编写百分比布局代码过程中,app:layout_widthPercent="50%"会导致程序无响应,请问你遇到这个问题了吗?怎么 解决的,谢谢
你和书上写的不一样,api 是什么鬼?不应该是compile或者implementation ?