开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android 各种报错,各种被坑的节奏

简介:
+关注继续查看

今天悲剧了一大下,无语了彻底,现在的心情还久久不能平静,原因就是在不必要的地方瞎耽误了些许功夫。

说一下背景吧,就是之前在本地把项目的一些功能什么的都完成了,准备往SVN的项目里整合一下,结果老大在服务器上创建项目的时候,Android SDK的版本是最新的,我们小的本地里的版本还没有及时更新上去,本来自己下载一下就好了嘛,但是在这个抢网速已经到了无节操的时代,我对于更新Android SDK表示很有压力。

不过老大开了一个共享文件夹,可以直接将他的Android SDK拷到自己的本地,这到也没什么了。因为之前最开始的时候也是从他那拖的整套SDK。

然后各种问题也就接踵而来了,下面一一来表(不按问题发生顺序)

1、提示:This Android SDK requires An... ADT to the latest version. 如图:

wKiom1N1fTWjrrw6AAJUXvkje4M251.jpg

这个问题出现的原因是ADT(Android开发工具)的版本没有跟上Android SDK的版本。对于ADT的配置其实是在我们最初在Eclipse上配置Android开发环境时就有的一步,只不过时间一久就有点记忆模糊了。话说Android SDK4.4版本貌似变化很大,所以ADT应该也是要更新的,关于ADT的配置官网给出了步骤详解。如图:

wKiom1N1hRjCPMIWAALJXkjBOIE860.jpg

大家只要进入【Help】-【Install New Software】-【Add】,按照上图把名字填成ADT Plugin,把URL写成官方给出的那个链接就行,如果小写的https不好使的话,大家可以试试改成大写的HTTPS或者改成http,然后点OK,如下图,选择【Developer Tools】和【NDK Plugins】两项,然后下一步,确定就OK了。

wKiom1N1hULD4KcHAANO4Zbdg-4107.jpg

这样ADT就算配置完成。

2、从SVN中检出项目跟以前也有点不一样,以前是直接就能把项目下载到本地,现在不知道是什么原因,下载到本地的不是完整的项目

这里还要说一下从SVN上导入项目到本地的时候,我们应该选择一个【做为新项目检出】,也就是在本地创建一个与项目名称一样名字的项目。如图:

wKioL1N1hVeQxDyVAAGphfvXERw323.jpg

这块有个小技巧教给大家如何快速创建一个本地项目,然后方便后续将无用文件删除的方法。如图:

wKiom1N1hZjCIafkAAJt1gZchc4086.jpg

在【Application Name】处填写与服务器上相同的项目名称,下面的【Project Name】和【Package Name】都会自动生成,然后不停的下一步,直到此处,如图:

wKiom1N1hbTjXiezAAHxpCLQzhQ601.jpg

这里同样只填写【Activity Name】处就行了,默认会是“MainActivitiy”,我的方法是在后面直接加几个数字或字母就行,比如111或aaa,同样下面的【Layout Name】和【Fragment Layout Name】也都会自动生成。

wKioL1N1haGB_-aeAADe4fvc5JE189.jpg

点击确定后会出现如下提示,这个时候请点【Cancel】,这个东西还没研究到底是什么,但一定是Android SDK4.4版本里的东东,看样子好像跟主题样式什么的有关。大家只要不进行覆盖就行了。

wKioL1N1hc2AwBRKAADrmX3qypM109.jpg

现在创建的项目中我们会发现虽然项目名称与服务器上的一致,但是根本就没有服务器上项目的文件,这时候右键点击【Team】只出现两项,看不到【更新】等操作。出现这种情况我们可以用以下方法解决,如图:

wKioL1N1hfWTPlrcAAJVJ-X6GnA716.jpg

然后一直点下去,在这里选择【使用已有资源库位置】,下一步

wKiom1N1hluijRfpAAFDe8n2o5o604.jpg

在这里选择【使用项目名称做为文件夹名】,下一步

wKiom1N1hwOgIN_lAAFrWNPdpko232.jpg

我们看会出现这个,建议选择【No】,然后就完成了。

这个时候我们会发现服务器上的文件已经全部下载到本地当中,我们再把先前创建的包(package)布局文件(layout.xml)删除就行了,由于名字都是特殊的,也就比较好找了。但是问题远没有结束。

3、报错:activity_XXX cannot be resolved or is not a field

解决办法:遇到这个问题或者提示的时候,大家可以看看是不是在加了import android.R或者别的什么import XXX.R,如果有请删除。

4、继续报错:R cannot be resolved to a variable

这个时候不知道大家有没有想骂街的冲动,反正我是有了,刚刚就是我们主动去把import XXX.R给删除的啊,难道还要加回去不成?当然不,这个时候我们需要进入AndroidManifest.xml文件当中去,我们会发现package项的内容为我们最初创建项目时候的包名,这里我们需要改成服务器上的项目真正使用的包名,再查看有没有服务器项目上对应的Activity(应该是没有),如果没有的话,我们就需要所有的Activity都注册一下,然后设置一个启动的Activity。如图:

wKiom1N1huuwAJBnAAMB7FPEU8Y870.jpg

到这为止,我遇到的问题就全都解决了,项目也能在设备上运行成功了。虽然写出来的问题好像不太多,也没那么麻烦,但是自己确实是花了好长的时间去搞。而且问题4还是今天早上来的时候解决的,对,这篇文章其实是昨天开始写的。

PS:请大家谨慎使用问题2中说的【Team】-【Share Object】,与项目同步,这个东东有点危险总觉得。

希望能帮到有需要的人,节省大伙儿的时间。










本文转自 我不会抽烟 51CTO博客,原文链接:http://blog.51cto.com/zhouhongyu1989/1412217,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决Android Studio报错:Compilation is not supported for following modules
本文主要解决和"Compilation is not supported for following modules"有关的报错。
0 0
Android Studio 更新版本之后报错: Cannot access android.arch.lifecycle.ViewModelStoreOwner
Android Studio 更新版本之后报错: Cannot access android.arch.lifecycle.ViewModelStoreOwner
0 0
Android 12 第一次运行就报错
问题描述: Manifest合并失败:当组件定义了 < intent-filter> 时,针对 Android 12 及更高版本的应用需要为 "android:exported" 指定显式值(android:exported="true")。 以前加上intent-filter的话,exported就默认是true。Android 12之后开始强制大家声明exported属性。
0 0
Android aab打包报错(持续更新中~)
言 jarsigner.exefailed with exit code 1 开发环境 解决方案 Execution failed for task ':app:transformClassesWithDexBuilderForRelease'. 开发环境 解决方案 Cause: failed to decrypt safe contents entry: java.io.IOException: getSecretKey failed: Password is not ASCII
0 0
Android studio 报错 Unable to resolve dependency for ‘:app@releaseUnitTest/compileClasspath‘:
Android studio 报错 Unable to resolve dependency for ‘:app@releaseUnitTest/compileClasspath‘:
0 0
解决Android的adb命令行报错Permission denied
解决Android的adb命令行报错Permission denied
0 0
【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
0 0
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
0 0
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android插件化:从入门到放弃
立即下载