文章目录
- 01.Android Studio “Cannot resolve symbol” 解决办法
- 02 java.lang.RuntimeException Unable to instantiate activity ComponentInfo异常解决
- 03 播放音频程序出错
- 04 Android Studio 出现 call requires api level 11 (current min is 2)解决方法
- 05 Android Studio创建jniLibs文件夹添加jar包
- 06 INSTALL_FAILED_NO_MATCHING_ABIS 解决方案
- 07 Android Studio打包时候报错 app lintVitalRelease
- 08 启动AVD时,Waiting for target device to come online
- 09 android.support.v7.app.actionbaractivity 报错
- 10 android 配置报错 Program type already present android.support.v4.app
- 11 移动项目后,Gradle sync failed: java.lang.NullPointerException
本文是作者在使用Android Studio遇到的一些问题,现在总结出大致的解决方案,希望能对读者有所帮助。若作者在Android的使用上遇到了新的问题,本文仍将继续更新。
01.Android Studio “Cannot resolve symbol” 解决办法
解决方法一
在方法之前加上如下代码以导入相关包
解决方法二
重启Android Studio
02 java.lang.RuntimeException Unable to instantiate activity ComponentInfo异常解决
不能实例化activity有如下三种情况:
- 没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。
- 自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActivity,在manifest.xml中注 册时你写的是,此时相当于你在的类注册到了默认包中,系统在默认包中是找不到的,因为你的FirstActivity在com.ghg.DaoImpl包 下,所以你注册时应写成包名加类名,如:<activity android:name=“com.ghg.DaoImpl.FirstActivity”;这样系统才能在指定的包中找到对应的类。
- 还用一种就是你的FirstActivity定义成了抽象类,这种情况好像一般人不会犯。
如果上述三种情况都考虑到了,还会抛出此异常,那么就查看一下activity类里是否同时存在这个类的构造函数和oncreate(),如果是,那么删除构造函数试试,并把初始化放到oncreate()中试试。
03 播放音频程序出错
问题详情
练习《第一行代码》中的程序,播放音频小节(8.4.1),在手机上运行后音频无法播放。手机在根目录放了音频文件“music.mp3”,在SD卡根目录上也放了该文件,在手机根目录创建“sdcard”文件夹下也放了该文件。
运行后,一点击播放按钮会出现下方错误
再点播放按钮,每次只打印一行错误,如下
解决方法一
添加SD卡访问权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
解决方法二
问题很可能是因为对应的路径没有“music.mp3”文件。
建议在initMediaPlayer()方法中try语句的中的File file = new File(Environment.getExternalStorageDirectory(),“music.mp3”);的后面加上上一条Log语句: Log.i(“音乐文件路径”, file.getPath());,看输出的路径是什么。
解决方法三
Error (-38,0)和Error (-19,0)一般是硬件设备不支持所致,在播放音乐时可以采用异步缓存,看你在写代码时直接加载到缓存,可以尝试新建一个模拟器,ram分配700m多一点。
04 Android Studio 出现 call requires api level 11 (current min is 2)解决方法
打开图片中被选中的配置文件“build.gradle”
然后将
改为
点击右上角Sync No
05 Android Studio创建jniLibs文件夹添加jar包
eclipse中项目自带libs文件夹,用来放需要的jar包之类的,可是在AndroidStudio中创建项目并没有这个文件夹,所以需要创建,名字统一为jniLibs。
1.Android创建项目默认为:
2.找到这个页面:
3.加入一段代码:(注意和buildTypes那一个大括号并列,在android大括号之内)
4.保存后会在上方出现提示:
5.点击后在项目中就出现jniLibs文件夹了。
6.将需要的bar包放入该文件夹,如果要引用,找到jar包(前边有小三角的是已引用的,没有小三角的可以引用)右键,选择Add As Library…,就引用好了。
06 INSTALL_FAILED_NO_MATCHING_ABIS 解决方案
在网上看到出现这个异常的原因是使用的了 Native lib 或者 JNI 之类的反正就是跟硬件有关的乱七八糟的包.
例如使用了 一个图片压缩的包, 涉及到了 JNI, 之后打包就出现了上述的异常.
解决方案:
在 app 的 moudle 的 build.gradle 文件中, 粘贴一下代码, 注意是添加在 android {} 大括号中.
这样就可以直接跑模拟器了. 但这样做后在打包时会产生多个 apk, 所以发布版本时把上面的代码注释掉后 rebuild 一下工程再打包. 切记一定要 rebuild 工程!
07 Android Studio打包时候报错 app lintVitalRelease
在配置文件“build.gradle”中添加注释代码
08 启动AVD时,Waiting for target device to come online
ctrl+alt+s,调出SDK Manager,选择SDK tools,查看SDK Tools
主要原因是Build-Tools或者SDK Platform-Tools或SDK Tools 有更新,造成版本不一致。下载并安装新版,保证版本一致就可以了。
09 android.support.v7.app.actionbaractivity 报错
actionBarActivity已经由AppCompatActivity取代了
把 import android.support.v7.app.ActionBarActivity;
; 改成import android.support.v7.app.AppCompatActivity;
用这个AppCompatActivity类就行了
10 android 配置报错 Program type already present android.support.v4.app
错误:Program type already present: android.support.v4.app.BackStackRecord$Op
错误:Program type already present: android.support.v4.app.ActionBarDrawerToggle$Delegate
两个错误的大致意思就是 前边已经存在了v4包的类文件,说实话,没太理解它真正的意义,不过已经猜出大概错误,是跟v4包有关。
看了一些博友的博客,发现我在配置
的时候 少了一个v4的导入(不加这个导入的话 ) 下面这行会报红线,但是不影响程序运行
加上这句话之后,以上问题迎刃而解。
11 移动项目后,Gradle sync failed: java.lang.NullPointerException
超级大坑!!!在网上搜索了一系列的解决方法,最终解决方法如下:
如果你在项目中导入了SlidingMenu这种模块式的依赖,那么就需要将这个模块移出到与app目录同级,并且修改相应的build.gradle以及settings.gradle,不能存在多级子目录路径(即“/”符号)
PS:这是我安装了AS 3.5版本遇到的问题,低版本下的AS应该不会出现这种问题