AndroidStudio

Summary: Author: 张亚飞 | 阅读时间: 2 minute read | Published: 2016-09-22
Filed under Categories: LinuxTags: Note,


Android Studio Live Template

在Android Studio 中,我们会发现有时候我们有一些打出一些拼写就会出来一些东西.比如:psvm


Android Studio 无线调试


Android Studio 加速


Android Studio插件

Markdown

.ignore
Genymotion
Lombok
Android ButterKnife Zelezny //  
ADB WIFI
Android Parcelable code generator // https://github.com/mcharmas/android-parcelable-intellij-plugin

ideavim
GsonFormat //五颗星推荐,把json数据往粘贴板一贴,自动生成Bean有没有,显著提高生成力.
Android Methods Count // http://www.methodscount.com/plugins
android-material-design-icon-generator-plugin //#Android Material Design Icon Generator # https://github.com/konifar/android-material-design-icon-generator-plugin
...

Gsonformat
Android Postfix Completion
AndroidAccessors
Lifecycle Sorter
JsonOnlineViewer
CodeGlance
findBugs-IDEA

经验总结

清除不必要的/libs/.jar包,即使没用引入 尽量不要引入本地包,使用 compile ‘io.reactivex:rxjava:1.0.14’ 的形式引入包 把不需要的jar包给删除了就可以了,亲测有效,重点排查android.support:appcompat-v7和com.android.support:support-v4包这个得用compile方法导入 //有相同包了,注意finished这句话,删除包,就可以了 compile 包引入重复的其它关联包,(版本不同也会重复引入,比如 android 注解库),使用 exclude 去掉关联引用:

compile('io.reactivex:rxandroid:1.0.1') {
    exclude module: 'rxjava', group: 'io.reactivex'
}

参考 Error:Execution failed for task ‘:app:dexDebug’. > com.android.ide.common.process.ProcessException


Android API 22 以上已经弃用了 httpclient 支持,需要额外引入:

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'

使用

useLibrary  'org.apache.http.legacy'

引入旧版支持,无代码提示 但是使用手动导包到 libs下引用,像下面这样,就会提示上面的错误

compile files('libs/org.apache.http.legacy.jar')

所有还是通过下面这种方式导包

android {
    ...
    useLibrary  'org.apache.http.legacy'
}

并且两种情况都不需要引入下面这两个依赖包

compile "org.apache.httpcomponents:httpclient:4.+"
compile "org.apache.httpcomponents:httpcore:4.+" //需要引入,否则会出现错误 Error:(250, 17) 错误: 找不到符号 符号: 类 NameValuePair

编译项目时,提示错误

Error:Execution failed for task ':assetManager:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'G:\Program Files\Java\jdk8\bin\java.exe'' finished with non-zero exit value 1

将 java 1.8 改成 java 1.7 即可

compileOptions {
    encoding "UTF-8" //手动添加的
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

将 targetCompatibility JavaVersion.VERSION_1_7 改成 targetCompatibility JavaVersion.VERSION_1_8 后提示 lint *** 错误,后参考项目 rxjava-webservice 的配置添加 retrolambda 解决


build.gradle 引入 compile ‘com.daimajia.easing:library:1.0.0@aar’ 后,出现以下错误

:app:processDebugManifest
F:\BaiDuCloud\StudioProjects\ShangYun\app\src\debug\AndroidManifest.xml:68:9-38 Error:
    Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:68:9-38
    is also present at [com.daimajia.easing:library:1.0.0] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher)
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:65:5-580:19 to override
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:68:9-38
    is also present at [com.daimajia.easing:library:1.0.0] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher)
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:65:5-580:19 to override

因为引入的库与当前主项目的logo有冲突,于是按以下修改: > 在Manifest.xml的application标签下添加tools:replace=“android:icon, android:theme”(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools=”http://schemas.android.com/tools”,否则会找不到namespace哦) 参考 http://blog.csdn.net/codezjx/article/details/38669939


软件包引入依赖过多文件之后,起用 renderscriptTargetApi 19 和 renderscriptSupportModeEnabled true 后出现以下错误:

com.android.dex.DexIndexOverflowException: Cannot merge new index 65536 into a non-jumbo instruction!

添加如下配置后解决问题

android {
    ...
    dexOptions {
        jumboMode true
    }
}

但是在一些旧的Android机上可能不能安装, 还是要想办法控制包数量的大小,不用的包去掉 其中 lombok 占用 1323kb,注释掉后没有出现问题,参考: * DexIndexOverflowException: Cannot merge new index 65772 into a non-jumbo instruction!: Jumbo Mode? and/or Multi-Dex? What is behind the scene? * Android Studio ONLY! DexException: Cannot merge new index 65536 into a non-jumbo instruction * 解决”Cannot merge new index 67208 into a non-jumbo instruction”的问题


参考

Comments

Cor-Ethan, the beverage → www.iirii.com