Android Studio 3.2.1解决错误信息"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"

在用Android Studio 3.2.1导入以前的项目,进行编译的时候,报告如下错误信息:

这个错误信息的原因是从NDK r17版本开始,已经不支持"armeabi、mips、mips64"这三种ABI格式了,而当前机器上安装的NDK版本是NDK r17之后的版本。

不过这个提示很能迷惑人,会让人误以为自己的build.gradle中配置了MIPSABI。实际上根本没有配置,是低版本的构建工具自己在默认构建MIPS格式,而又找不到对应的工具链。

解决方法很简单,要么使用低于NDK r17NDK版本,要么修改主工程的build.gradle,找到如下

将其中的

修改成

高版本的构建工具,才能适配高版本的NDK

参考链接


Android Studio 3.2.1解决错误信息"ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64]."

在用Android Studio 3.2.1导入以前的项目,进行编译的时候,报告如下错误信息:

问题发生的原因在于以前的代码在build.gradle中指定了abiFilters 'armeabi',但是从NDK r17版本开始,已经不支持"armeabi、mips、mips64"这三种ABI了。

虽然可以简单的修改成abiFilters 'armeabi-v7a',来解决问题,但是我们更希望能有一个办法,在老版本的支持abiFilters 'armeabi'NDK上继续使用abiFilters 'armeabi'进行编译,用来兼容老设备。而在只支持abiFilters 'armeabi-v7a'的设备上,我们使用abiFilters 'armeabi-v7a'保证能编译通过。

我们通过执行NDK目录下的ndk-which输出的支持的ABI列表的方式获取当前的NDK是否支持abiFilters 'armeabi',如果不支持,我们就设置为abiFilters 'armeabi-v7a'

继续阅读Android Studio 3.2.1解决错误信息"ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64]."

Android Studio 3.2.1在build.gradle中输出自定义日志&查看构建日志

在使用Android Studio开发Android项目的时候,我们有时候需要在build.gradle中增加一部分日志,来分析编译执行情况。

早期版本只能使用logger对象输出内容,如下:

目前最新的gradle 4.6版本已经支持println函数输出日志,如下:

只是,目前的Android Studio 3.2.1版本中,默认情况下,输出信息被简化了,导致我们找不到添加的输出内容。

只需要点击Build选项卡中的Toggle view选项,就可以看到我们的输出了。

具体操作如下图:
继续阅读Android Studio 3.2.1在build.gradle中输出自定义日志&查看构建日志

解决Android Studio 3.2.1版本在编译Vulkan时报告错误"Could not find com.android.tools.build:aapt2:3.2.1-4818971"

目前的最新Android Studio 3.2.1版本在编译Vulkan时报告错误"Could not find com.android.tools.build:aapt2:3.2.1-4818971",详细错误信息如下:

导致问题的原因为源代码根目录下的build.gradle中缺少对于google源服务器的配置(话说,貌似以前版本的都在jcenter中可以找到,最新版本的,好像没有上传到jcenter服务器了,估计是google的商业策略了,在此不多做评述)

打开该文件里面的内容显示如下:

解决方法为在allprojects字段中增加google()源服务器。

修改后的配置变更如下:

参考链接


Build errors after Android Studio 3.2.1 upgrade

Android Studio 2.3调试小米手机安装失败

Android Studio 2.3调试小米手机MIUI 8.7.4的时候,安装APK一直失败,错误信息如下:

网上查询了一下,是MIUI自身的优化导致的问题。
解决方法就是在MIUI->设置->更多设置->开发者选项->启用MIUI优化,关闭这个选项就可以了。

参考链接


Android Studio 2.3 adb install-multiple Failed to create session Failure [UNS...

macOS Sierra (10.12.4)下使用Android Studio打开Android Virtual Device Manager报告“/dev/kvm is not found”错误

Android Virtual Device Manager突然出现了/dev/kvm is not found这个错误,我猜测大概Hardware_Accelerated_Execution_Manager丢失了某些文件,或者没安装好HAXM

继续阅读macOS Sierra (10.12.4)下使用Android Studio打开Android Virtual Device Manager报告“/dev/kvm is not found”错误

Android Studio 2.2 启用代码混淆

在新版本的Android Studio中开启混淆的方法如下:

具体解释一下minifyEnabled用来影响是不是开启混淆,shrinkResources只有在minifyEnabledtrue的情况下,才能有效,用来去除无效的资源文件。proguard-android-optimize.txtAndroid SDK->tools\proguard目录下,Google已经写好默认的混淆模板文件,其中的proguard-android.txt默认没有配置代码优化,而proguard-android-optimize.txt默认配置了代码优化,至于我们自己工程下面的proguard-rules.pro文件,只要配置我们自定义的额外配置即可,其他的用默认配置即可。

顺便讲一下代码混淆的好处:

1.代码安全,不易理解,增加破解难度。

2.减小APK的体积,减少内存开销。

3.缩减类名,方法名的长度,减少CPU开销。

参考链接


Android Studio 混淆代码时提示 “Warning:org.apache.commons.httpclient.util.URIUtil: can't find referenced class org.apache.commons.codec.net.URLCodec”

Android混淆代码时提示"Warning:org.apache.commons.httpclient.util.URIUtil: can't find referenced class org.apache.commons.codec.net.URLCodec"
解决方法是proguard-rules.pro中增加如下语句:

其他类似的警告信息,可以参考以上的方法,逐行添加即可。

参考链接


ProGuard error can't find superclass or interface org.apache.http.entity

Android Studio升级到2.2正式版本后,在Windows命令行中执行“gradlew build”时,报告错误“Unsupported major.minor version 52.0”

Android Studio升级到2.2正式版本后,在Android Studio中编译一切正常。但是在Windows命令行中执行“gradlew build”时,报告如下错误:

这个原因,目前本人遇到的原因是,机器上同时安装了jdk1.7.0_80jdk1.8.0_73两个版本的JDK,而环境变量中的JAVA_HOME指向的是jdk1.7.0_80

解决方法就是修改JAVA_HOME指向jdk1.8.0_73即可。

注意,修改完成环境变量后,需要重启一下Android Studio,以及Windows命令行窗口。否则环境变量不生效。