功能篇:
1、项目中引用so文件
在如下路径下放你的so文件
在app的build.gradle文件的android{}内加入以下代码:
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
2、svn中change list的作用:把你不想要提交或没必要提交到svn上的文件或文件夹移到某一个你新建的list里,然后每次提交时你就选择你想要提交的那个list就可以了。其实svn有个忽略清单,里面可以定义过滤不提交的文件和文件夹,但是我发现定义了并没有实现它过滤的功能,所以我只能求change list的帮助了。
如图:
踩坑篇:
1、代码修改后如果直接点击启动,有时候执行的还是旧代码。
2、重建(reBuild)项目后启动会出现
清理后又会出现
解决方案:无视,再次点击启动即可。这可能是as有点抽了或我还没有能力解决的以及网上没有找到相关解决办法。
3、用android studio修改代码后没有卸载掉之前的app,直接运行,然后程序运行得不合常理。但是卸载之前安装的app后再重新运行,程序运行才正常了。。。
解决方案:在setting中关闭Instant run这个功能或每次运行前把app卸载先。听朋友说这个功能还不成熟。
Eclipse踩坑篇(以上为AS部分)
ps:可能也会适用AS环境中出现的错误。
**1、SVN更新报错 The working copy needs to be upgraded
svn: Working copy ‘E:\Ad_Workspace\MyShpApplication_1.0.0’ is too old (format 9, created by Subversion 1.5)**
解决方案:选中项目右键 –>team –>upgrade 等待完成OK.
2、INSTALL_FAILED_NO_MATCHING_ABIS
描述:我是在用AS2.0开启的模拟器来运行我在eclipse中的项目(在ADT环境中)。上网查了一大把资料发现是模拟器不支持我的项目声明的armeabi(libs文件夹下,存放着so文件)的cpu架构。而我启动的模拟器所用的系统镜像为x86的cpu架构。但是从资料获取的信息得知理论上android这种cpu架构是向下兼容的,即64位->x86->armeabi-v7a ->armeabi,所以我猜想我的项目直接运行在x86的真机上是可以的。现在我们先来看想要在AS的x86或64位的模拟器上成功运行我的项目的解决方案(其实很简单):
解决方案:把Eclipse项目中libs文件夹下的armeabi文件夹名称改为x86,然后运行。
3、ADB server didn’t ACK
原因:你的eclipse对应的adb所使用的端口被占用了。我发现我是被另一个adb程序占用了,所以我就去环境变量的设置下看了一下就知道问题是出在这了。我环境变量设置的adb路径不是我在使用的eclipse对应的sdk中的adb的路径,我之前还傻傻的用命令行的杀死和启动adb的命令来解决这个问题。
解决方案:确认环境变量中设置的adb路径是正在使用的eclipse对应的sdk中的adb的路径,然后打开任务管理器结束一个叫做adb.exe的应用进程,最后重启eclipse。