当前位置: 萬仟网 > 网络运营>移动>Android > Android开发中如何解决R文件爆红问题以及SDK概念

Android开发中如何解决R文件爆红问题以及SDK概念

2019年04月18日 08:57  | 萬仟网网络运营  | 我要评论

android开发中如何解决r文件爆红问题以及sdk概念,在android studio中会遇到r文件的丢失,所以遇见这问题怎么解决呢?

重新检查资源文件中xml文件

最近一次编译时如果未生成r.java文件,项目中资源引用的地方都会出错。通常,这是某个xml布局文件的代码写错了,这里你就要检查一下了,修改找到的错误保存就可以了,这时r.java文件就不会爆红了。

清理项目

选择build—》clean project菜单项,android studio会重新编译整个项目,消除错误,建议经常进行。

gradle同步项目

这是教师给的:刚百度了一下,那个按钮是『sync file with gradle files』,就是根据gradle文件重新同步项目的依赖库。如果你修改了build.gradle配置文件,就需要同步更新项目的编译设置,选择tools–>android–>sync project with gradle files 菜单项,android studio会使用正确的项目设置重新编译项目。这是解决gradle配置变更带来的问题。

在android manifest配置文件中声明activity

manifest配置文件是个包含元数据的xml文件,每个应用的所有activity都必须在mainfest配置文件中声明,这样操作才能够使用它们。

哦哦。。创建新的activity

至少涉及三个文件:java类,xml布和应用的mainfest文件。

intent的对象

intent对象是component用来与操作系统通信的一种媒介工具。目前为止,我们唯一见过的component就是activity。实际上还有:service,broadcast,receiver,….其实这些我也没有接触过,还不太懂,到时了解后,会写文章出来的。

反正intent就是一种多用途通信工具。intent类提供了多个构造方法。

在androidmanifest.xml中


 
  
  
 

sdk概念
在android studio中以最低版本设置值为标准的sdk,操作系统会拒绝将应用安装在系统版本低于标准的设置上。

sdk目标版本:在应用设计时告知用哪个api级别去运行了。

sdk编译版本:在android studio中,最低版本和目标版本会通知给操作系统,而sdk编译版本是我们和编译器之间的小秘密。(不能告诉的小秘密)

android的特色功能就是通过sdk中的类和方法展现的。在编译代码时,sdk编译版本或编译目标指定要使用系统版本。在文件中可以修改sdk版本。

就是在build.gradle文件中的最低sdk版本,目标版本,以及编译版本。

    compilesdkversion 26
    buildtoolsversion "26.0.1"
    defaultconfig {
        applicationid "cn.edu.gdmec.android.geoquiz"
        minsdkversion 19
        targetsdkversion 26
        versioncode 1
        versionname "1.0"
        testinstrumentationrunner       
        "android.support.test.runner.androidjunitrunner"
    }

修改完后,点击tools–>android–>sync project with gradle files 菜单项,项目随即会重新完成编译的,然后就可以了哦。

注意了哦
还有一个就是android lint 的这个东西,就是。。。你所写的上述代码在低版本中设备上运行时会崩溃,这时候你就得注意了,点击android studio 上的 analyze –> inspect code… 菜单项手动触发 lint 。

崩溃原因是:sdk编译版本为api ,,级,编译器本身编译代码没有问题,而是 android lint 这东西知道了项目sdk 最低版本,所以及时值出了问题的所在。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com