Android studio意外问题的解决方式

来源:互联网 发布:99手机游戏java 编辑:程序博客网 时间:2024/06/07 06:00

由于AndroidStudio的不成熟,在使用过程中经常出现意外的问题,下面介绍下偶遇到的问题,以及解决方法。

1.building “project name”gradle project info

   在启动项目时经常遇到弹出building“project name”gradle project info...提示框,并且一直在圈圈。

   这是因为当前项目的使用到的gradle不合适,需要从官网上重新下载,但又对防问不到google,这就出现一直在圈圈。

   既然无法直接下载,可以选择翻墙,也可以从其他网站找找相应的gradle(提供个gradle2.4 http://download.csdn.net/detail/nacl025/9146511)

   下载成功后,存放在:C:\Users\用户名\.gradle\wrapper\dists\gradle-1.XX-all\3jdgemv0iv8uqohg3kcp2o88r1\gradle-1.XX-all.zip

   重启Android Studio,如果运气不好的话,还会弹出building“project name”gradle project info。这是因为没有读到相应路径,需要手动把项目目录下的build.idea.gradle等文件及文件夹删除,然后重启AndroidStudio,手动指定相应路径。恭喜,成功了!

2、引用第三方类库

      在有第三类库的时候,运行项目时会发现下面的问题:“android studio Execution failed for task ':app:dexDebug'.”

      这是因为第三方库是系统库,我们运行时不需要添加到安装包内,既所说的Framework_lib。此时我们需要在依赖中做如下修改:

      dependencies {
                         provided files('framework_libs/framework_base.jar')
       }

      特别注意一点jar包不要存放到默认的libs目录内。

3、Debug时使用第三方签名

      android {
               signingConfigs {
                                                      debug {
                                                              storeFile file("D:\\Users\\edmund\\.android\\mdm_test.keystore")
                                                                   }
                                            }
                     }

4、addUserRestriction

  在android5.0后,DevicePolicyManager类新增加了addUserRestriction方法,但是在使用时签名打包时会发生异常,这是混淆引起的,需要在混淆文件里添加下面内容:

    dontwarnandroid.app.admin.DevicePolicyManager

5、Lint: How to ignore “<key> is not translated in <language>” errors?

  • "File" > "Settings" and type "MissingTranslation" into the search box
  • 如果还不可以,如下:
  • android {    lintOptions {        checkReleaseBuilds false        // Or, if you prefer, you can continue to check for errors in release builds,        // but continue the build even when errors are found:        abortOnError false    }}

6、自定义导出Apk包名

     打gabuild.gradle文件

apply plugin: 'com.android.application'//获取时间戳def getDate() {    def date = new Date()    def formattedDate = date.format('yyyyMMddHHmm')    return formattedDate}//从androidManifest.xml中获取版本号def getVersionNameFromManifest() {    def manifestParser = new com.android.builder.core.DefaultManifestParser()    return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)}//从androidManifest.xml中获取Codedef getVersionCodeFromManifest() {    def manifestParser = new com.android.builder.core.DefaultManifestParser()    return manifestParser.getVersionCode(android.sourceSets.main.manifest.srcFile)}android {    compileSdkVersion 23    buildToolsVersion '23.0.0'    defaultConfig {        applicationId "com.nq.**"        minSdkVersion 16        targetSdkVersion 23    }    android.applicationVariants.all { variant ->        variant.outputs.each { output ->            def file = output.outputFile            def filename = "Safelauncher_" + getVersionCodeFromManifest() +".apk"            output.outputFile = new File(file.parent, filename)        }    }}

0 0
原创粉丝点击