技术-工具-Android Studio
如何引入so库
方法1:
在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库
方法2:
在app/libs下放入对应不同的CPU架构的so文件,这样工程并不会自动加载libs下的so,需要在gradle编译时,通过加入代码:jniLibs.srcDir'libs'来说明so的路径为该libs路径
Gradle编译问题:
1 问题:
':app:transformNative_libsWithStripDebugSymbolForDebug'.
> java.lang.NullPointerException (no error message)
解决方法1 :
可能是ndk版本 引起的问题。
编辑local.properties文件,注释掉这一行即可:ndk.dir=....
解决方法2:
修改gradle-wrapper.properties中distributionUrl的gradle 版本即可。
2 问题:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList ...] couldn't find "libAdwoLocker.so"
解决方法:
-------------未解决----------
3 问题:
Please configure Android SDK:
解决方法:
4 问题:
Error:Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
解决方法:
gradle.zip包下载失败造成的
改成其他可用版本的zip包,或者下载然后使用离线zip包
5 问题:
Error:Configuration with name 'default' not found.
解决方法:
setting.gradle中引用了不存在的第三方库。
6 问题:
build ' ' gradle project info
解决方法:
1 离线Gradle或者使用vpn.
2 下载离线gradle,解压到~/.gradle/wapper/dists目录下,重启AS即可(推荐)。
7 问题:
引入新module时,“Select modules to import” error
解决方法:
由于gradle配置错误导致的。
把module混淆打包时配置了buildTypes,工具会把这个module认为是一个项目,而不再是一个module。解决的方法也就是把buildTypes注释掉即可。
布局显示问题:
1 问题:
Android studio the following classes could not be instantiated:
--android.support.v7.internal.widget.ActionBarOverlayLayout
解决方法:
You have to do two things:
be sure to have imported right appcompat-v7 library in your project structure -> dependencies
change the theme in the preview window to not an AppCompat theme. Try with Holo.light or Holo.dark for example.
如何生成混淆后的jar包:
1 在打包模块build.gradle 中,添加:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
I
2 修改该module的proguard-rules.pro文件:
-keep public class com.admaster.sdk.lan.manager.LanManager {
public *;
}
-keep class * extends android.os.Parcelable {
public *;
}
3 在该module的build.gradle文件中编写打包方法:
task makeJar(type: Copy){
delete 'build/libs/lan.jar'
from('build/intermediates/bundles/release/')
into('build/libs/')
include('class.jar')
rename('class.jar','lan.jar')
}
makeJar.dependsOn(build)
4 执行gradlew makejar命令:
gradlew makeJar
5 解决每次执行/.gradlew命令时都会下载的问题:
方法1:
下载gradle文件,放到gradle/wrapper目录下
修改gradle-wrapper.properties的distributionUrl为:
distributionUrl=gradle-1.11-bin.zip(根据版本不同进行修改)
缺点:
每个项目都需要这么搞岂不是很累
而且我的Mac电脑本身磁盘空间就小,一个包有60M左右,有10个项目,就会多占用500M的空间。
方法2:
http://stackoverflow.com/questions/22896569/how-to-use-gradle-zip-in-local-system-without-downloading-when-using-gradle-wrap
如何正确的修改包名:
Project结构下:
小齿轮按钮--确保Compact Empty Middle Package未选中
Git教程
1 添加忽略文件:
编辑.gitignore即可。
2 删除远程分支:
git push origin :branch-name
注意:冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
3 删除本地分支:
git branch -D branch-name
4 修改commit内容
git commit --amend
未push
git rebase -i head~3
push之前提交的历史注释
5 重命名分支:
git branch -M branch-name-old new branch-name-new
6 本地文件添加git管理:
git init
把整个目录变成git可以管理的仓库
git remote add origin git@github.com:michaelliao/learngit.git
将本地的仓库和远程仓库关联起来
git push -u -f origin master
把本地仓库的所有内容推送到远程仓库上。
-u 参数:不但会把本地master推送到远程新master分支,还会把本地master和远程master关联起来
-f 参数:强制推送
插件:
SQLScout:
查看数据库插件
http://www.idescout.com/
参考:
Android Studio Rendering Problems : The following classes could not be found