android studio使用要点及常见错误

版权声明:本文为luoyong原创文章,转载请注明出处!https://blog.csdn.net/luoyong_blog https://blog.csdn.net/luoyong_blog/article/details/84570082

1、主项目跟他的依赖lib要放在同一个目录才能在eclipse中export

2、导入eclipse中导出的项目到studio后的配置:
(1)打开工作空间目录下的 gradle –> wrapper –> gradle-wrapper.properties 。修改一下内容: distributionUrl=http://services.gradle.org/distributions/gradle-a.b.c-all.zip –> distributionUrl=https://services.gradle.org/distributions/gradle-2.4-all.zip

(2)打开工作空间目录下的 build.gradle 文件。修改以下内容:
classpath ‘com.android.tools.build:gradle:0.x.+’ –> classpath ‘com.android.tools.build:gradle:1.2.3’

3、添加其他项目为module需要手动修改主目录里的settings.gradle,把**文件名或包名(远程的用包名)**include进去(加冒号,ex:include ‘:app’),然后sync同步一下

4、主项目和依赖的lib放在同一个目录时,输出后主目录也有build.gradle,各个lib(包括主项目)也都各自有build.gradle,导入的时候需要导入根目录(不是主项目)里的那个build.gradle

5、错误自动检测:在 AS 右下角有个小人头 点击 有个POWER SAVE MODE 取消对钩 代码就能自动检测了

6、主项目图标为小手机表示这是主应用程序,为咖啡杯表示还有未完成的配置等,变成三本竖着的书表示这是个module

7.添加了 compile fileTree(include: ‘*.jar’, dir: ‘libs’)就不用添加libs文件夹下的dependence了(写了也不会报错)

8、变lrmlibrary由应用为lib库(即eclipse中的is library):只需要修改lib项目lrmlibrary里build.gradle中的apply plugin: ‘com.android.application’为apply plugin: ‘com.android.library’。并且修改lib项目lrmlibrary的manifest中application标签,去掉

<intent-filter>-->
                <!--<action android:name="android.intent.action.MAIN" />-->
                <!--<category android:name="android.intent.category.LAUNCHER" />-->
            <!--</intent-filter>
  
  

    错误6:找不到R文件
    module找不到R文件-build-make module xxx
    检查是否编译了项目。Android studio有时候没有编译就会报出没有R文件的错误。(可以make project或者make module)
    检查代码中包名是否正确。有时候从其他地方复制代码过来时连带了包名,也会报出R文件找不到。
    检查布局文件是否有语法错误。布局文件有语言错误时也会导致R文件错误。
    软件抽风了,重建项目试试。
    另外可能很多人不知道在哪儿找R文件,Android studio左上角有个选项,一般我们可能是选的Android模式,选择Packages模式找到你的项目,里面就可以看到R文件了

    错误7:V7包内build-intermediates-explodedaar-com.android.support-appcompatv7-22.1.1-res.value 什么什么错误 :检查build.gradle的compileSdkVersion和buildtoolsversion和主项目的这两个是不是写的一样

    错误8:有个很严重的问题,比如我有个主工程为MainProject,另外有个库工程为library,如果主工程与 library**都需要引用Jar support-v4.jar**,不能直接添加Jar引用,必须要为此公共Jar建立一个Library,然后两个工程都引用此library,否则在编译Android过程中提示 此Jar already added Exception
    –新建一个module(file-new module-android library)然后为这个module从dependencies处add- library,选V4和V7。然后其他各个需要V4或V7包的module都从dependencies处add-module来引用这个module(不直接引用v4和v7)

    错误9:V4、V7等包冲突(java.exe finished with non-zero exit value 2 、has already exists等)
    1、新建module library_support ,引用V4 V7
    2、引用的开源lib全添加依赖为这个module,间接引用V4 V7(即错误8里的解决方法),并把添加library_support的这一项的scope改为provided(不是改support的,是改依赖support的),让他只给自己的lib用,不给别人用。
    3、在./build/intermediates/dex-cache/cache.xml 中找到所有关于v4 v7的包定义全部删掉(假如有的话)
    4、假如主项目也依赖V4 V7的话就要也给主项目依赖library_support了(因为引用的lib里的V4和V7都是私有的,不能间接给主项目用),但主项目的library_support依赖必须为compile
    5、clean project
    6、假如有报错如在某个开源lib的build-intermediates-manifest-androidTest-debug-androidmanifest.xml文件有报错则删除那个报错的没见过的标签(instrumentation),此时不要clear project!否则还会再生成。直接run project。

    错误10.主项目假如添加maven里的远程项目时,假如提示远程项目的minversion大于主项目的minversion,则需要在主项目的manifest中的 uses-sdk元素中添加 tools:overrideLibrary = “com.soundcloud.android.crop,com.ikimuhendis.ldrawer”

    错误11.假如提示错误找不到drawable-iclauncher(因为新版studio中图片放在mipmap而不是drawable中)则需要在新项目的manifest的application标签下添加tools:replace=”android:icon”

    错误12、打包时报a problem was found with the configuration of task。。。错误
    1。clear项目
    2.打包时的key store path要写全路径!

    错误13、libs里的jar包不能展开并且在项目中无法引用
    如图
    解决方法:sync一下就行了

    错误14、 1 .Duplicate files copied in APK META-INF/LICENSE.txt

    android {

    packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    }
    

    }
    My logcat: log Execution failed for task ‘:Prog:packageDebug’.
    Duplicate files copied in APK META-INF/LICENSE.txt File 1: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar File 2: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar

    解决方法
    在主项目app的build.gradle添加

    android {    
        packagingOptions {  
            exclude 'META-INF/DEPENDENCIES.txt'  
            exclude 'META-INF/LICENSE.txt'  
            exclude 'META-INF/NOTICE.txt'  
            exclude 'META-INF/NOTICE'  
            exclude 'META-INF/LICENSE'  
            exclude 'META-INF/DEPENDENCIES'  
            exclude 'META-INF/notice.txt'  
            exclude 'META-INF/license.txt'  
            exclude 'META-INF/dependencies.txt'  
            exclude 'META-INF/LGPL2.1'  
        }  
    } 
       
       

      错误15、
      异常提示:
      应用在Android Studio Build的时候,抛出了如下异常:
      Error:Execution failed for task ‘:app:processDebugManifest’.

      Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library [jp.wasabeef:blurry:1.0.0]
      /Users/xxx/xxx/app/build/intermediates/exploded-aar/jp.wasabeef/blurry/1.0.0/AndroidManifest.xml
      Suggestion: use tools:overrideLibrary=”jp.wasabeef.blurry” to force usage
      错误原因:
      出现这个错误的原因是我引入的第三方库最低支持版本高于我的项目的最低支持版本,异常中的信息显示:我的项目的最低支持版本为8(Android 2.2),而第三方库的最低支持版本为9(Android 2.3),所以抛出了这个异常。

      解决办法:
      在AndroidManifest.xml文件中 标签中添加

      <uses-sdk tools:overrideLibrary="xxx.xxx.xxx"/>
        
        

        其中的xxx.xxx.xxx为第三方库包名,如果存在多个库有此异常,则用逗号分割它们,例如:

        <uses-sdk tools:overrideLibrary="xxx.xxx.aaa, xxx.xxx.bbb"/>
          
          

          这样做是为了项目中的AndroidManifest.xml和第三方库的AndroidManifest.xml合并时可以忽略最低版本限制。

          猜你喜欢

          转载自blog.csdn.net/luoyong_blog/article/details/84570082