android studio 编译时lint错误及解决方法

来源:互联网 发布:java中设计模式详解 编辑:程序博客网 时间:2024/06/18 13:06


一开始可能报的错很多,但大多是关于语法及Google规则之类的,按照lint report上面的提示修改就可以了。下面主要说的是遇到的几个比较棘手的问题。

1 InvalidPackage: Package not included in Android

lint report上解释说,当你创建安卓项目时,你可以通过创建的路径获取到Android的API包中的类。但是如果你引入了其他的工程作为你的libs,而你没用其中jar文件的权限,那么你就获取不到相应的API。

When you create Android projects, the classpath is set up such that you can  only access classes in the API packages that are included in Android. However,  if you add other projects to your libs/ folder, there is no guarantee that  those .jar files were built with an Android specific classpath, and in  particular, they could be accessing unsupported APIs such as java.applet.  

既然没有权限,但是项目却能正常运行,并且其他相同路径的包引用没问题,没办法,那就用lint的忽略规则给忽略掉吧。在相应的模块中添加一个lint.xml,给出id="InvalidPackage",然后给出lint report中的出错路径<ignore path=“XXXX”/>就ok了。

2 com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META_INF/NOTICE

这个是由于在lint report指出的jar文件中含有重复的文件导致的,给项目的demo的build.gradle中加上注解就可以了。

 
packagingOptions {
    //exclude 'META-INF/NOTICE.txt'
    //exclude 'META-INF/NOTICE'
    //exclude 'META-INF/DEPENDENCIES'
     exclude 'META-INF/LICENSE'
     exclude 'META-INF/LICENSE.txt'
    // exclude 'META-INF/ASL2.0'
    // exclude 'META-INF/notice.txt'
}

3 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\PublicFile\android\android-sdk_r24.1.2-windows\android-sdk-windows\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1

这个是你的build.gradle的兼容包和compileSdkVersion配置不对引起的有两个解决方法:一个是全部升级成最新的,appcompat-v7:21.0.0须使用android 5.0版本的build tool,而且build出来的程序只能在Android 5.0下运行,另外一个方法就是自己动手支修改build.gradle有参数把compileSdkVersion=19,targetSdkVersion 19,兼容包改成compile 'com.android.support:appcompat-v7:19.+'这样就可以了。希望对你有用!

我的处理是全都升级到相同的版本就可以了。


1 0