zoukankan      html  css  js  c++  java
  • Android studio使用过程中遇到的问题

    好多问题都是修改gradle文件解决的,如果一下问题没有注明修改什么地方,那就是gradle文件了

    问题汇总:

    1、

    NinePatch(.9.png)图片的问题 
    如果某个图片命名成了.9.png,实际图片并不是Ninepatch格式的,或格式错误,会编译出错,解决办法是按Ninepatch格式修改图片,严格安规范,四周都要限制。

    2、

    android studio 非法字符: 65279 Error:(1, 10) 错误: 需要class, interface或enum 
    这个错误是文件BOM导致的 
    只要将文件编码方式改掉就行,不要使用UTF-8 WITH BOM(UTF-8包含签名) 
    简单的把文件删除,在Android Studio新建文件,再把原文件内容粘贴过去就行 
    如果需要改的文件太多,给大家推荐一个小工具 BOM头小工具。

    3、

    AndroidMenifest.xml重复权限问题 
    需要把重复的权限去掉,就不会再报警告了

    4、

    Error:(26, 9) Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:26:9
    Error:(28, 9) Attribute application@theme value=(@style/ThemeActionBar) from AndroidManifest.xml:28:9
    is also present at XXXX-trunk:XXXXLib:unspecified:15:9 value=(@style/AppTheme)
    Suggestion: add ‘tools:replace=”android:theme”‘ to <application> element at AndroidManifest.xml:24:5 to override
    Error:Execution failed for task ‘:XXXX:processDebugManifest’.
    > Manifest merger failed with multiple errors, see logs

    原因:

    AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。

    解决方法有以下2种:

    方法1:在Manifest.xml的application标签下添加tools:replace=”android:icon, android:theme”(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools=”http://schemas.android.com/tools”,否则会找不到namespace哦)

    方法2:在build.gradle根标签上加上useOldManifestMerger true (懒人方法)

    参考官方介绍:

    http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

    5、

    Library Project里面的BuildConfig.DEBUG永远都是false。这是Android Studio的一个已知问题,某Google的攻城狮说,Library projects目前只会生成release的包。

    Issue 52962: https://code.google.com/p/android/issues/detail?id=52962

    解决方法:(某Google的攻城狮推荐的方法)

    Workaround: instaed of BuildConfig.DEBUG create another boolean variable at lib-project’s e.g. BuildConfig.RELEASE and link it with application’s buildType.

    https://gist.github.com/almozavr/d59e770d2a6386061fcb

    参考stackoverflow上的这篇帖:

    http://stackoverflow.com/questions/20176284/buildconfig-debug-always-false-when-building-library-projects-with-gradle

    6、

    每次保存的时候,每行多余的空格和TAB会被自动删除(例如结尾、空行的多余空格或TAB)

    特别是每次准备提交SVN,Review代码时候你就蛋疼了,显示一堆不相关的更改,看的眼花。

    解决方法:

    Settings->IDE Settings->Editor->Other->Strip trailing spaces on Save->None

    7、

    编译的时候,报:Failure [INSTALL_FAILED_OLDER_SDK]。一般是系统自动帮你设置了compileSdkVersion

    解决方法:

    修改build.gradle下的compileSdkVersion ‘android-L’为compileSdkVersion 19(或者你本机已有的SDK即可)

    8、

    > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

    解决方法:

    在工程的gradle中设置

    可以支持超过65k的方法数

    defaultConfig {        
        // Enabling multidex support.
        multiDexEnabled true
    }

    9、

    com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: ch/boye/httpclientandroidlib/ConnectionClosedException.class

    解决方法:

    重复包,把对应重复的删除即可一般为v4冲突

     10、

    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml

    解决办法:

    • 在Manifest标签下添加
    xmlns:tools="http://schemas.android.com/tools"
    • 在Application标签下添加
    tools:replace="android:icon"

    11、

    Error:Execution failed for task ':transformClassesWithDexForArmv7Release'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 3

    解决:

    dexOptions {    
    javaMaxHeapSize "4g"
    }

    12、
    多语言未翻译问题

    解决:
    可以在lint.xml中加入

    <issue
    id="MissingTtanslation"
    severity="ignore"
    />

    或者更干脆点,按照studio的提示来
    打开项目目录下的build.gradle文件(这就是gradle的配置文件,gradle就是编译工具了),然后按照提示一股脑把新参数全部加到android里面。

    android {
    lintOptions{
    checkReleaseBuilds false
    abortOnError false
    }}

    这样打包就不成问题了。checkReleaseBuilds就是在打包Release版本的时候进行检测,这里就直接关掉了,也可以打开,这样报错还会显示出来。关键的就是abortOnError一定要设为false,这样即使有报错也不会停止打包了。

    15、

    FATAL EXCEPTION: main
    
     Process: com.wanda.property_client, PID: 11910
    
     java.lang.NoClassDefFoundError: org.apache.cordova.PluginEntry

    导致4.4系统安装程序直接崩掉

    解决:

    在application中加入:

    protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
       MultiDex.install(this);
    }

    16、

    Gradle sync failed: 'com.android.build.gradle.BasePlugin' does not implement the Plugin interface

    解决:

    在gradle中修改 

    classpath 'com.android.tools.build:gradle:0.14.0+'

    classpath 'com.android.tools.build:gradle:2.1.0'
  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/earl-yongchang/p/5056565.html
Copyright © 2011-2022 走看看