【第一行代码】安卓学习中的坑与笔记

【第一行代码】安卓学习中的坑与笔记,第1张

文章目录 安卓开发问题部分·litepal包添加失败的解决方法· 出现'META-INF/DEPENDENCIES'.· 调用相册章节· 使用getAdapterPosition时返回的position为-1· litepal中的Datasupport被弃用问题·as中批量替换检索得的关键词的方法·layoutflater与findViewById()·在最后的天气数据库创建中找不到province·查看不了源码

安卓开发问题部分 ·litepal包添加失败的解决方法

刚起步学习安卓,在学习郭神的《第一行代码》的时候发现litepal怎么也加入不了依赖。
并发送这个报错:Failed to resolve: org.litepal.guolindev:core:3.2.3

网上很多资料都没有用,最后是自己碰巧解决了。

最开始是百度了好几天的资料才发现使用GitHub的依赖需要添加这个:maven { url 'https://www.jitpack.io' }

但还是无济于事,最后瞎猫碰上死耗子又添加了阿里云的maven最后成功添加依赖

jcenter { url 'https://maven.aliyun.com/repository/public' }

做此记录





· 出现’META-INF/DEPENDENCIES’.
packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
    }

记着这个用来删除重复的代码段要放在android{}里面,不然会报错




· 调用相册章节

即使已经动态权限申请了WRITE_EXTERNAL_STORAGE,即使已经是Android7.0以上了,还是需要在AndroidManifest里面写上
不然连权限申请都不d出来,最后的图片更是展现不了。找了很久才发现是这个原因





· 使用getAdapterPosition时返回的position为-1

网上搜到了很多问题和解决答案,最后在一个博客的一个大佬的评论中得到了答案,供大家参考:
这里不是因为使用了notifyDataSetChanged导致的周期问题什么什么的,是我在oncreate最后返回值写错了,写成了

return new ViewHolder(view); 

和那个博主的错误情况如出一辙,应该是自动补全导致的锅,看了下郭神的代码,正确的也如那个评论所说,应该是:

return holder;



· litepal中的Datasupport被弃用问题

被LitePalSupport替代了,extends LitePalSupport即可



·as中批量替换检索得的关键词的方法
先是ctrl+f搜索所需要替换的字串,再用ctrl+r输入替换后的字串。


·layoutflater与findViewById()

前者可以找到layout目录下的xml文件并实例化,后者是可以在xml文件中更具体地找到widget控件。

1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。





·在最后的天气数据库创建中找不到province

litepal.xml里表初始化代码有错…初始化时写的是province而不是Province



·查看不了源码

解决方法原文

源码无法下载,显示
all packages are not available for download!
the following packages are not available:
package id sources android-32

文章内提到是因为api32根本没提供源码,换成低版本的sdk就可以了,30及以下都可以



# ·使用drawerlayout的时候滑动页面遮挡问题 因为在该布局的第二个子控件中要打android:layout_gravity="start"的时候发现没有给我自动补全,我以为是因为版本迭代导致这个不需要了就没写,结果一直有bug,选择城市的侧滑界面一直霸占了weatheractivity页面,后来上网查drawerlayout的时候发现android:layout_gravity="start"是必须要写的,然后我手动写完发现是可以使用的,大家可以注意下。 总结:android:layout_gravity="start"可能会没有自动补全,但是可以写的,也是必须要写的。功能是以阅读习惯从左到右,也就是侧滑导航在左边。 # 遗忘笔记部分 此处记录遗忘的知识点: ## ContextCompat ContextCompat 可以理解为是封装了 Context 的一些便捷方法,如加载图片等资源文件 ## 使用as模拟器时电脑本机的地址是10.0.2.2

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/992770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存