Cocos-Android Studio、Gradle常见错误、设置

 

AndroidStudio: 是Google官方基于IntelliJ IDEA开发的一款Android应用开发工具,,类似之前的eclipse,但是比eclipse 强大很多;

Gradle:是一个工具,同时它也是一个编程框架。使用这个工具可以完成app的编译打包等工作;

buildToolsVersion: android构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX,通过SDK Manager 更新; 
comileSdkVersion:编译版本,就是运行我们这个项目的需要的android SDK版本;

comileSdkVersion 和buildToolsVersion区别

新建一个项目,看build.gradle文件的配置,如下:

build.gradle

CompileSdkVersion:是告诉gradle 用哪个SDK版本来编译,和运行时要求的版本号没有关系;使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。

buildToolsVersion: android构建工具的版本,在SDK Manager中安装选择版本,buildToolsVersion的版本需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;

 

gradle版本和com.android.tools.build:gradle配置的版本关系

之前会奇怪,为什么一更新gradle 插件版本,会报错 
如下图,红色部分配置的就是android gradle 插件的版本,gradle插件的版本号和gradle版本号是对应的,较新的插件版本需要要求较新版的gradle,所以提示你更新gradle; 
build.gradle

报错及解决方法:

 
报错一:Error:Unsupported method: BaseConfig.getApplicationIdSuffix().
解决:修改build.gradle和gradle-wrapper.properties文件的gradle版本
 
 
报错二:The "Android" command is deprecated.

The "Android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager

原因:

新版android sdk tool 舍弃了android相关命令,而cocos creator 依赖此编译,故通不过。

解决办法:

旧版sdk tool 覆盖即可,参考以下链接解决:

http://forum.cocos.com/t/creator1-4-1-android/45151

The "android" command is deprecated.

For manual SDK, AVD, and project management, please use Android Studio.

For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager

*************************************************************************

Invalid or unsupported command "update lib-project -t android-10 -p /Users/gamepub/Documents/c/build/../framewos/cocos2d-x/cocos/platform/android/java"

Supported commands are:

android list target

android list avd

android list device

这个问题是新版本的Android SDK把android工具删除了,而cocos命令依赖这个
google希望大家把切换到Android Studio,lite的Android Studio工程没有支持gradle编译
这个-x也是3.15加上的,等发布完3.15得同步到creator

应该是cocos2dx版本和ndk版本不兼容,这两个要用对应的版本,尤其是ndk版本,不要用太新的!!目前用10e

报错三:

使用android studio打包应用程序出现如下错误:

注: 某些输入文件使用或覆盖了已过时的 API。 
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 
注: 某些输入文件使用了未经检查或不安全的操作。 
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

编译完之后就告诉我这寥寥无几的错误提示,让我情何以堪,于是google了下得到的答案:

地址

我把这段代码粘贴过来了:

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

重新编译得到如下错误提示:

sers/guoyoujin/AndroidStudioProjects/gz/app/src/main/java/com/guoyoujin/gz/gz/net/HttpConnect.java:83: 警告: [deprecation] org.apache.http.params中的BasicHttpParams已过时
        BasicHttpParams httpParams = new BasicHttpParams();
                                         ^
/Users/guoyoujin/AndroidStudioProjects/gz/app/src/main/java/com/guoyoujin/gz/gz/net/HttpConnect.java:85: 警告: [deprecation] org.apache.http.conn.params中的ConnManagerParams已过时
        ConnManagerParams.setTimeout(httpParams, Globe.TIMEOUT_SOCKET);
        ^
/Users/guoyoujin/AndroidStudioProjects/gz/app/src/main/java/com/guoyoujin/gz/gz/net/HttpConnect.java:86: 警告: [deprecation] org.apache.http.conn.params中的ConnPerRouteBean已过时
        ConnManagerParams.setMaxConnectionsPerRoute(httpParams, new ConnPerRouteBean(15));
                                                                    ^
注: 某些输入文件还使用或覆盖了已过时的 API。
100 个警告

好吧,果然错误提示变的非常详细,接下来就可以去修改这些警告了。

 

 

 

你可能感兴趣的:(Android平台)