Error:(117, 0) No such property: sdkHandler for class: com.android.build.gradle.AppPlugin的解决办法
问题 
由于AndroidStudio不断地更新,导致很久以便能编译的NDK无法再编译通过,通过吧版本改成老版本有又太费劲,索性就直接还是找到报错的地方修改,以上报错修改如下: 
把: 
* def ndkDir = project.plugins.findPlugin(‘com.android.application’).sdkHandler.getNdkFolder() 
修改成 
def ndkDir = project.android.ndkDirectory

如果不这样修改也可以使用

方法二:
把:gradle的版本修改成 2.14.3 
Android Plugin Version 改成2.2.3

Android Studio升级到3.2.1后,运行项目报如下错:

Could not find com.android.tools.build:aapt2:3.2.1-4818971.
 Searched in the following locations:
     file:/D:/AndroidStudio/sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
     file:/D:/AndroidStudio/sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
     file:/D:/AndroidStudio/sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
     file:/D:/AndroidStudio/sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
     file:/D:/AndroidStudio/sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
     file:/D:/AndroidStudio/sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar Required by:
     project :app


 

解决方法很简单:

在项目的build.gradle文件中,新增一行google()即可解决

allprojects {
     repositories {
         jcenter()
         google()//新增这一行
     }
 }
  com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed

在Android studio 3.1.2上编译报错AAPT2 error:check logs for details。 
原因很明确,是添加了点九图导致。 
在网上搜了很多方法: 
1.在gradle.properties文件里添加一行android.enableAapt2= false; 
2.在app的build.gradle中添加以下配置:

   

aaptOptions.cruncherEnabled = false
         aaptOptions.useNewCruncher = false
 1
 2
 3.AndroidStudio->Preferences->InstantRun 把钩全部去掉; 
 4.clean project, Rebuild project;


以上全都不起作用。

最后是通过 File–>invalidate caches/restart–>Invalidate and Restart,重启了studio得以解决。 
记录下来做个备忘。

 

Android Studio NDK及so文件开发
1、 NDK安装及配置
1.1、NDK安装
Android Studio 从1.3 Beta1开始,支持了NDK。之前则不支持,所以我们建议使用新版的编辑器。

安装NDK

itoa无法通过android编译 android studio无法编译_Android

itoa无法通过android编译 android studio无法编译_配置环境变量_02

打开Setting => Appearance & Behavior => System Settings => Android SDK

然后在右侧页面中点击SDK Tools可以看到你是否安装了Android NDK(如红色框选的部分),如果未安装那么勾选后apply进行安装,如果已安装那么接下来配置环境变量;

itoa无法通过android编译 android studio无法编译_android_03

1.2、配置环境变量
安装好的NDk一般位于你的sdk文件夹下的ndk-bundle。

比如我这里是:D:\SDK\ndk-bundle(如下图),可以看到里面有ndk-build文件,下文进行编译的时候我们会用到。

itoa无法通过android编译 android studio无法编译_itoa无法通过android编译_04

然后将该路径配置到你系统变量的path里面去,如下:

itoa无法通过android编译 android studio无法编译_itoa无法通过android编译_05

(我这里使用的是Win10系统,其他系统界面不一,根据你的情况自己添加,不会请百度)

添加完毕后打开cmd,输入ndk-build,出现如下内容则表示成功(网上说是成功的,虽然显示的貌似是一些错误信息,但是后文运行的时候是没问题的可以编译成功)。

itoa无法通过android编译 android studio无法编译_Android_06

背景
在使用AS工具自带命令面板Terminal的时候,相信你有碰到过:xx不是内部或者外部命令,也不是可运行程序。解决办法就是配置环境变量

一、在 Terminal 中使用 adb,报 ‘adb’ 不是内部或者外部命令,也不是可运行的程序。
解决方案:配置环境变量
1、在系统变量中新建一个变量名字为ANDROID_HOME, 变量值是你的 sdk 目录,比如:D:\Local\Android

2、将android sdk 中 adb.exe 目录配置在 path 变量中, 在系统变量的 path 中后面添加 
;D:\Local\Android\Sdk\platform-tools (注意用分号隔开)

3、重启AS,打开 Terminal 窗口,输入 adb ,效果如下图,即可用。

二、在 Terminal 中使用 gradle,报 ‘gradle’ 不是内部或者外部命令,也不是可运行的程序。
解决方案:配置环境变量
1、在系统变量栏新建 GRADLE_HOME 变量,变量值是你本地 gradle 工具的地址,一般是安装 AS 目录下就有,比如:D:\Android Studio\gradle\gradle-3.2

2、在系统变量下的 path 后面添加 gradle 中 bin 的目录 ,比如 ;D:\Android Studio\gradle\gradle-3.2\bin (注意是 bin 的目录,还有记得加分号)

3、重启 AS, 在 Terminal 中输入’gradle’,显示如下图,即可用。

 


C:/Users/zengjf/AppData/Local/Android/Sdk/ndk-bundle/build//../build/core/build-binary.mk:701: *** Android NDK: Aborting (set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies)    .  Stop.

            D:\zengjf\SourceCode\Android\android_app\Test>
        2. 解决方法
            1. C:\Users\zengjf\AppData\Local\Android\Sdk\ndk-bundle\build\core\build-binary.mk
            2. 修改内容:
                ...
                ifdef undefined_libs
                    $(call __ndk_warning,Module $(LOCAL_MODULE) depends on undefined modules: $(undefined_libs))

                    # https://github.com/android-ndk/ndk/issues/208
                    # ndk-build didn‘t used to fail the build for a missing dependency. This
                    # seems to have always been the behavior, so there‘s a good chance that
                    # there are builds out there that depend on this behavior (as of right now,
                    # anything using libc++ on ARM has this problem because of libunwind).
                    #
                    # By default we will abort in this situation because this is so completely
                    # broken. A user may define APP_ALLOW_MISSING_DEPS to "true" in their
                    # Application.mk or on the command line to revert to the old, broken
                    # behavior.
                    APP_ALLOW_MISSING_DEPS=true    // add this line 
                    ifneq ($(APP_ALLOW_MISSING_DEPS),true)
                        $(call __ndk_error,Aborting (set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies))
                    endif
                endif