使用android studio.9报错 报这个异常什么原因

Android Studio使用过程中常见问题及解决方案 - 高逼格 - 博客园
随笔 - 44, 文章 - 0, 评论 - 3, 引用 - 0
&&&& &熟悉Android的童鞋应该对都不陌生。Android编程有两个常用的开发环境,分别是Android Studio和,之前使用比较多的是Eclipse,而现在呢,由于Android Studio的优越性,越来越多的人转而使用它了。
&&&&& 随着Android Studio使用人数的增加,使用过程中的问题也日益凸显,本文小编就整理了一些Windows系统下使用Android Studio的常见问题及解决方案,大家可以围观围观,遇到类似问题,不妨可以试试小编下面分享的方法。
1、assets文件的存放目录在&src/main/&目录下,和java、res文件夹平级;
2、引用libs文件夹中的so,需要在对应module下的build.gradle文件的android标签下加上如下属性:
& android {
&&&&& sourceSets {
&&&&&&&&& main {
&&&&&&&&&&&&& jniLibs.srcDirs = ['libs']
&&&&&&&&& }
3、android studio的编译时屏蔽掉lint检查,可以避免由于编译条件太过严格而编译不过的问题:
& lintOptions {
&&&&& abortOnError false
4、如果遇到多个jar包中的某个文件冲突,可以在对应module下的build.gradle文件的android标签下加上如下属性:
& packagingOptions {
&&&&& exclude 'META-INF/NOTICE.txt'// 这里是具体的冲突文件全路径
&&&&& exclude 'META-INF/LICENSE.txt'
5、调整logcat文件显示的颜色:File&Setting&Editor&Colors&Fonts&Android Logcat&在界面的右侧调节logcat每个级别日志的颜色;
6、显示行号:File&Setting&Editor&General&Appearance&勾选&Show line numbers&;
7、Logcat的console中,显示&no debuggable applications&的问题:Tools&Android&Enable ADB Integration;
8、如果依赖工程和主工程中有同名同类型的资源文件,需要修改依赖工程中的资源名称编译时才不会报错,如果依赖工程中的这个资源文件是整个工程都不需要用到的,可以直接删掉;
9、Android Studio中一个主工程依赖多个library的模式编译时很慢(clean和rebuild时,之前Eclipse中是这种模式),因为这种工程框架是主工程和每个依赖工程中都有一个build.gradle,编译起来会消耗比较长的时间,可以将没有资源文件和so的依赖工程打包成jar包,有资源文件和so的打包成aar文件,然后在主工程中引用,这样编译会很快;
10、Android Studio对九图的要求很严格,如果文件以&.9.png&结尾但是图片不是9图,编译的时候会报错,解决方案是直接在AS中打开这张图片,通过9图编辑工具编辑成9图即可;
11、修改Module之间的依赖关系有两种方式:(1)直接修改每个module的build.gradle文件中的dependencies;(2)右键project&Open Module Settings&在弹出面板的左侧Modules一栏中选中要修改依赖关系的Module,点击右侧的Depencencies标签修改即可;
12、Android Studio自动导包:File&Settings&Editor&General&Auto Import&Java&切换&Insert imports on paste&为&All&&勾选&Add unambigious imports on the fly&;
13、代码格式化快捷键:CTRL+ALT+L;
14、重命名文件夹或者文件的快捷键:ALT+SHIFT+R;
15、鼠标悬浮在某个方法上时,显示该方法的信息:Preferences&Editor&Show doc on mouse move;
16、删除一个Module,直接在IDE中选中Module后按Delete是删不掉的,需要先右键project&Open Module Settings&在弹出面板的左侧Modules一栏中选中要删除的Module&点击面板左上角的&-&符号&点击OK后回到IDE,然后选中要删掉的Module,按Delte快捷键删掉即可;
17、Android Studio中执行Lint等工具对代码的检测,Analyze&Inspect Code。
以上就是Android Studio使用过程中,最容易出现的17个问题及其解决办法,还不是很清楚的童鞋可以收藏慢慢体会。
相关文章:《》摘要&Download
interrupted: SSL peer shut down incorrectly,Error:(6, 34) 错误: 程序包android.support.annotation不存在,Error:Execution failed for task ':app:clean'.& Unable to delete file: Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE
environment variable...
1、android studio 导入项目时Error:SSL peer shut down incorrectly
今天导入一个项目到studio,显示在下载一个一个1.1.0-rc4的东西。
过了一会报了这个错,网上搜了下说是
Android SDK Manager下载SDK报错:Download interrupted: SSL peer shut down incorrectly
还需要设置一些文件什么的,看着挺麻烦的
然后我到这里看了下
对照着自己能正常运行的项目改了一下就好了,也可以在gradle里改
2、android studio编译时Error:(6, 34) 错误: 程序包android.support.annotation不存在,或者是读取不到xxx版本的annotation
这个出现的原因应该比较少,纯粹个人手贱,鼓捣坏了。fx看了下,大部分是说依赖包的问题,或者是版本不兼容的问题之类的。那些去查就好了,这里只是针对我自己的。网速不好的话,不建议
如下图,把这两个删掉,然后重新下载就ok了。
3、当你clean的时候出现如下错误
Error:Execution failed for task ':app:clean'.& Unable to delete file: E:\caibao\dangkelanqiu\Dunk\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.1.1\jars\classes.jar
或者是v7/appcompat/R$anim.class的错误
解决方法:打开电脑的任务管理器,找到如下进程,结束掉,再次clean就ok了
或者这样也可以
4,运行时,出现非零值退出值1的错误,
clean Project就好了
如果是values 2的话,应该就是有重复导入的包了
5、之前项目好好的,结果突然就报错了-gradle升级了
Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to &aed79d567e58d2b7ca891ff897c6&
&a href=&fixGradleElements&&Fix plugin version and sync project&/a&&br&&a href=&openFile:E:\xxx\xxx\xxxx\xxx\app\build.gradle&&Open File&/a&
classpath&'com.android.tools.build:gradle:2.0.0-alpha1'&&
(1)、classpath&'com.android.tools.build:gradle:2.0.+'&&&&&&&&
(2)、去这个网址看最新的插件版本
把gradle的版本改成那个最新的就行了
完了之后还需要更新sdk,studio会提示的
本文已收录于以下专栏:
相关文章推荐
1.新建assets目录有时,我们的html等文件需要放到这里
但是,却不是新建文件夹那么简单
http://blog.csdn.net/u/article/deta...
刚到公司不久,公司叫我用Android studio软件,以前一直在用的是eclipse ADT,突然接触到的新名词让我有点适应不过来。好吧,既然是公司要求,肯定有它的道理,就从网上下载了它的安装包,...
人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..
配环境这玩意儿真是考验耐力和碰运气啊!!!!
导入一个已有的gradle项目
一开始提示 Error:failed to find Build Tools revision 21.1.1
Can't update: no tracked branch
No tracked branch configured for branch master.
To make yo...
如果某个控件找不到,并且id没有写错,可以试试build的clean
android.view.InflateException运行时xml文件错误
studio运行端口被占用
studio连不上夜神...
出现 Error: NDK integration is deprecated in the current plugin.
在gradle.properties 文件里面添加 andro...
原文地址:/how-to-use-git-hub-with-android-studio/
太详细了,忍不住翻译了。
1. This fragment should provide a default constructor (a public constructor wit
代码不规范,这个错误是在提...
第一次从github克隆项目并成功运行的完整步骤(以material menu为例子)
问题1:building ''
           或Error:Co...
Stack Overflow
QuestionsTagsUsersBadgesUnansweredAsk Question
Take the 2-minute tour × Stack Overf...
他的最新文章
讲师:董西成
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)使用android studio进行ndk开发时如何定位crash错误 -
鲁提辖_Ga的博客 - CSDN博客
使用android studio进行ndk开发时如何定位crash错误
使用android studio进行ndk开发时如何定位crash崩溃错误
在ndk开发时, jni层的代码一旦出现问题, 就会打印如下信息, 然后直接闪退, 这时候让人非常抓狂, 只能过在各个jni函数中打印日志来跟踪问题,但是效率实在是太低,碰到有多线程的时候很难定位到问题.
网上搜索到的定位ndk崩溃的文章都是使用eclipse来举例的, 编译时产生的so文件保存在obj/local/armeabi/目录下, 但是使用android studio进行开发的话根本没有obj/local/armeabi/这个目录.
因此本篇文章就来介绍下如何在android studio下来定位ndk崩溃
首先我们要先把Logcat里的show only selected application选项改成No Filters(红框1), 这时就能看到系统打印出的DEBUG信息.
在DEBUG信息里找到backtrace(红框2), 这段就是系统给出的造成崩溃的信息, 但仅仅给出了是哪个函数, 而没有准确给出是那一行代码造成的崩溃.
记下#00 pc (红框3)这个信息, 这个信息就是用来定位崩溃代码的地址
想要准确定位崩溃代码的地址的话我们就需要用到ndk工具包里的adrr2line这个工具了
首先先找到这个工具, linux系统这个工具在如下位置
/home/gavinandre/Documents/Android/android-sdk-linux/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line
在该目录下做个软链接后就能在任何目录使用这个命令了
sudo ln -s arm-linux-androideabi-addr2line /usr/local/bin/addr2line
找到造成崩溃的so文件地址, 在app目录下搜索so文件
$ find -name "libsocket_camera-lib.so"
./build/intermediates/bundles/debug/jni/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/bundles/default/jni/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/cmake/release/obj/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/cmake/debug/obj/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/transforms/mergeJniLibs/release/folders/2000/3/main/lib/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/transforms/mergeJniLibs/debug/folders/2000/3/main/lib/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/transforms/stripDebugSymbol/release/folders/2000/3/main/lib/armeabi-v7a/libsocket_camera-lib.so
./build/intermediates/transforms/stripDebugSymbol/debug/folders/2000/3/main/lib/armeabi-v7a/libsocket_camera-lib.so
可以看到android studio编译后生成了许多so文件, 以我的经验正确的so文件一般是这个文件:build/intermediates/transforms/mergeJniLibs/release/folders/2000/3/main/lib/armeabi-v7a/libsocket_camera-lib.so
然后就可以使用addrline命令了, 格式是addr2line -e 文件位置 崩溃地址(红框3: )
addr2line -e build/intermediates/transforms/mergeJniLibs/release/folders/2000/3/main/lib/armeabi-v7a/libsocket_camera-lib.so
如果so文件正确的话会打印如下信息,socket_camera.cpp就是崩溃的cpp文件, 304就是行数, 然后检查下定位出来的位置是否在DEBUG信息里给出的函数里(红框4)
/home/gavinandre/Documents/Workspace/AndroidStudioProject/DisinfectionRobot/nvadtslibrary/src/main/cpp/nvadts/video_engine.cpp:304
如果so文件错误的话会打印问号或者一个不对的位置, 这时就要换so文件多尝试了
我的热门文章发表于 今年 01-06 19:23
&&1604 阅读
读完本文你将了解到:
在保证代码没有功能问题,完成业务开发之余,有追求的程序员还要追求代码的规范、可维护性。
今天,以“成为优秀的程序员”为目标的拭心将和大家一起精益求精,学习使用 Lint 优化我们的代码。
什么是 Lint
Lint 是Android Studio 提供的 代码扫描分析工具,它可以帮助我们发现代码结构/质量问题,同时提供一些解决方案,而且这个过程不需要我们手写测试用例。
Lint 发现的每个问题都有描述信息和等级(和测试发现 bug 很相似),我们可以很方便地定位问题,同时按照严重程度进行解决。
当然这个“严重程度”我们可以手动调节,有些原则问题不容侵犯,必须提升到 error,而有的个别问题也可以无视,毕竟人非圣贤孰能无过嘛。
Lint 工作方式简单介绍
Lint 会根据预先配置的检测标准检查我们 Android 项目的源文件,发现潜在的 bug 或者可以优化的地方,优化的内容主要包括以下几方面:
Correctness:不够完美的编码,比如硬编码、使用过时 API 等
Performance:对性能有影响的编码,比如:静态引用,循环引用等
Internationalization:国际化,直接使用汉字,没有使用资源引用等
Security:不安全的编码,比如在 WebView 中允许使用 JavaScriptInterface 等
Lint 检测代码的过程如下图所示:
App 源文件:包括 Java 代码,XML 代码,图标,以及 ProGuard 配置文件等
lint.xml:Lint 检测的执行标准配置文件,我们可以修改它来允许或者禁止报告一些问题
从命令行运行 Lint
Lint 的命令很简单:
lint [flags] &project directory&
Lint 也可以使用 Gradle 运行:
gradlew lint
./gradlew lint
具体命令行相关的操作这里就不介绍了,因为这个过程实在太痛苦,上一张命令行运行 Lint 后得到的 XML 文件截图让你体验一下:
看着浑身不舒服,想了解如何从命令行使用 Lint 的同学可以前往官方学习。
我们还是直接进入 Lint 的 GUI 操作吧。
Android Studio 中使用 Lint
Android Studio 中内置了 Lint,我们小手一点就可以直接使用。
Lint 的使用路径:
**工具栏 -& Analyze -& Inspect Code... **
点击 Inspect Code 后会弹出检查范围的对话框:
默认是检查整个项目,我们可以点击 Custom scope 自定义检查范围。
点击右边的下拉框,会出现以下选择:
Project Files:所有项目文件
Project Production Files:项目的代码文件
Project Test Files:项目的测试文件
OpenFiles:当前打开的文件
Module 'app':主要的 app 模块
Current File:当前文件
除了内置的选项我们还可以自己选择特定的类进行检查,点击下图中的红色框部分:
会弹出自定义范围选择框,默认是空的,我们可以点击左上角的“+”号新增一个检查范围:
- Local:只能当前项目使用
- Shared:其他 Android Studio 项目也可以使用
我们选择 Shared,然后起个帅气的名字 “ShixinCuteLint”,默认按项目显示,这时检查的文件数为 0 :
上图中右边的四个按钮表示要操作的类型:
Include:包括当前文件夹内的文件,但不包括他的子文件夹
Include Recursively:包括当前文件夹以及它的子文件夹内所有的文件夹,递归添加
Exclude:移除当前文件夹,不包括子文件夹
Exclude Recursively:移除当前文件夹及所有子文件夹
我们点击左边的 app 文件夹后,点击右边的 Include Recursively 按钮,把 app 下的所有文件添加到检查列表:
可以看到,这时 app 下的文件都变绿了,总共有 689 个文件夹要扫描。
点击 OK 进行检测,稍等一会儿,会弹出 Inspection 对话框,显示检查结果,没想到我的代码居然有 1769 个警告!这数字触目惊心啊:
我们主要关注红框内的警告,先来看看我的代码 Performance 有什么问题:
哈哈,没想到我还有这么多进步空间!
上图可以看到,Lint 真是神器,可以帮我们发现自己忽略或者没有意识到的问题,尤其是性能方面,如果你觉得自己代码想优化又不知道从何做起,不妨让 Lint 给你指指路。
团队中建立代码规范利器:提升、降低问题的等级
虽然 Lint 可以帮我们检查代码的问题,但多人合作时,我们更期望可以在写代码时就发现问题、解决问题。
鉴于团队成员中水平良莠不齐,靠个人意识有时候很难保证质量,这时可以修改 Lint 对于特定问题的警告等级,以最直观的 IDE 提示来警醒成员。
Lint 的警告严重程度有以下几种:
Unused Entry:没有使用的属性,灰色,很不起眼
Typo:拼写错误,绿色波浪下划线,也不太起眼
Server Problem:服务器错误?好像不是
Info:注释文档,绿色,比较显眼
Weak Warning:比较弱的警告,提示比较弱
Warning:警告,略微显眼一点
Error:错误,最显眼的一个
日常开发中,好一点的程序员会关注 Warning 的警告,根据警告优化代码,但那也只是很少一部分。但是红色的 Error 就不一样了,基本上看到就想要消灭掉。
我们拿命名拼写错误举个例子。
类、对象、遍历拼写错误看起来不是什么问题,但是如果你见过大量的无意义或者错误命名,你一定会赞同我的接下来做法。
默认的拼写错误是 Typo ,提示很弱,所以常被人忽略:
上面的 String 类型变量 login 写成了 logn,Lint 默认对拼写错误是个下滑波浪线,很不起眼。我们修改一下。
打开 Preferences/Settings,搜索 Inspections,会出现 Lint 的检测配置页面:
要修改拼写的警告等级,搜索“spelling”:
然后选择出现的 Typo,再点击右边的 Severity 就是严重程度,改成 Error,OK。
可以看到,现在拼写错误就会出现红色的错误警告了,让你不好好写变量名!
Lint 虽好,也不能贪杯。
Lint 就像是一个洁癖患者,虽然可以让我们代码干净许多,但是如果真要把它提示的全解决,恐怕老板要发怒了:给你发工资天天玩电脑,怎么不出活呢?!
Lint 报的某些警告的确是没必要,这时我们可以选择忽略这些警告。忽略警告可以分两种:
在 Java 代码中
在 XML 文件夹中
在 Java 代码中忽略 Lint 警告:
忽略 Lint 警告的注解跟 @SuppressWarnings 很类似,@SuppressLint(&忽略的警告名称&)。
下面的代码演示了如何忽略 Lint 对使用新 API 的警告:
@SuppressLint(&NewApi&)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
要是你不清楚要忽略的警告具体是什么名字,那就直接忽略 all,当然是当前类/方法/对象:
@SuppressLint(&all&)
在 XML代码中忽略 Lint 警告:
只需两步:
xml 中声明 tools 命名空间
使用 tools:ignore=&忽略的警告名&
&LinearLayout xmlns:android=&/apk/res/android&
xmlns:tools=&/tools&
tools:ignore=&all&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical&
android:background=&@color/white&&
Gradle 中配置 Lint
Gradle 中也可以配置 Lint 的关键操作,比如是否开启 Lint 警告,或者关闭指定的警告。
在 module 下的 build.gradle 中添加 lintOptions{...}, 样例代码如下:
lintOptions {
// Turns off checks for the issue IDs you specify.
disable 'TypographyFractions','TypographyQuotes'
// Turns on checks for the issue IDs you specify. These checks are in
// addition to the default lint checks.
enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
// To enable checks for only a subset of issue IDs and ignore all others,
// list the issue IDs with the 'check' property instead. This property overrides
// any issue IDs you enable or disable using the properties above.
check 'NewApi', 'InlinedApi'
// If set to true, turns off analysis progress reporting by lint.
quiet true
// if set to true (default), stops the build if errors are found.
abortOnError false
// if true, only report errors.
ignoreWarnings true
自动删除查找出来的无用资源文件
代码迭代版本一多,很容易会遗留一些无用的代码、资源文件,我们可以使用 Lint 进行清除。
点击 Android Studio 工具栏 -& Analyze -& Run Inspection By Name..,输入要检测的内容,这里是无用资源:
然后选择 Unused resources,再选择范围后就开始检测。
检测出这么多无用文件:
注意,右边有解决方法:Remove All Unused Resources,放个大图显眼一点:
点击后,boom ,从此世界清静了。
Lint 是优秀程序员之友,吾日三省吾身,今日 Lint 了没?!
欢迎扫描关注我的微信公众号 安卓进化论,第一时间阅读文章~
/studio/write/lint.html
http://blog.csdn.net/u/article/details/
我是张拭心
兼职厨师,进阶中的 Android 程序员,致力于做一名优秀的移动开发者。
希望可以把自己技术、思想成长的过程分享与你,感谢你的鼓励与陪伴,谢谢!
欢迎扫描关注我的微信公众号 安卓进化论,一起成为更优秀的 programmer
(? o?_o?)? !

我要回帖

更多关于 android studio 导报 的文章

 

随机推荐