Android studio使用aar的个别问题

集成aar的两种方式:

1、导入aar,使aar作为一个module项目导入,和app同级目录。
这种方式在build.gradle中的dependencies的依赖方式是:
implementation project(':aar的名称');
2、把aar复制到libs文件夹下,然后添加依赖。
这种方式在build.gradle中的dependencies的依赖方式如下面这样:
implementation(或api)(name:'aar名称',ext:'aar',{
    exclude group:'com.android.support',module:'support-v4'
})

我使用的是第二种方式,使用中有四个简单的错误。

错误一:
Failed to resolve::aar名称:
Open File


解决:
这个需要在Module:app的build.gradle下添加下面内容:
repositories {
    flatDir {
       dirs 'libs'
    }
}


错误二:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugManifest'.
解决:
这个一般会提示解决方法,如下:

根据建议在AndroidManifest.xml中添加:
<manifest
    xmlns:tools="http://schemas.android.com/tools">
<application
    tools:replace="android:name">


错误三:
java.lang.NoSuchFieldError: No field xxx of type I in class Lcom/xxxx/module/R$id;
解决:
这个是因为项目中的res资源和aar中的res资源有重名的xml文件。
所以修改主程序或aar中的xml文件名即可。

错误四:

Error: Google Play requires that apps target API level 26 or higher. 

解决:

我主项目的targetSdkVersion是27,但是集成aar后,发现里面的部分语音及视频功能在Android7.0的手机上无法正常使用,最后我想尝试下是不是targetSdkVersion版本太高的缘故。修改targetSdkVersion的值时就提示了这个错误警告。
网上搜索的解决方式:https://blog.csdn.net/lancewoo/article/details/87879272。我是直接改成了26,aar包里的功能也可正常使用
。
至于为什么在targetSdkVersion 27的时候,aar个别功能不可用,还不知道原因。

猜你喜欢

转载自blog.csdn.net/aianzxy/article/details/91594051
今日推荐