Skip to content

netwalker128/aar-to-eclipse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aar-to-eclipse

1、aar-to-eclipse是通过gradle插件的方式,将aar(maven) 转化成 eclipse工程

2、本工程基于https://github.com/kezong/fat-aar-android改写而成

3、本工程的用法

目的:由于eclispe不支持集成ar,并且也不支持将aar在maven上依赖的组件都下载到本地;本指导和工具可以方便开发者将maven上的aar库(支持依赖传递)转成Eclipse工程,方便集成到开发者自己的Eclipse开发环境中。

以下以AppGallery Connect SDK Kit的auth组件(com.huawei.agconnect:agconnect-crash:1.2.1.300)为例

操作步骤

  1. 确认本地已经搭建好JAVA环境和Android SDK环境

    在命令行中敲击如下命令,会有对应的返回

    >echo %JAVA_HOME%
    C:\Program Files\Java\jdk1.8.0_191
    >java -version
    java version "1.8.0_191"
    >echo %ANDROID_HOME%
    D:\app\Android\sdk
  2. 下载并解压aar2eclipse.zip[https://github.com/netwalker128/aar-to-eclipse/releases/download/v1.0/aar2eclipse.zip],得到文件夹

    D:\temp\aar2eclipse>dir
    
    2020/03/02  19:44    <DIR>          .
    2020/03/02  19:44    <DIR>          ..
    2020/03/02  19:33    <DIR>          aar
    2020/03/02  19:42    <DIR>          repo
  3. 检查maven仓的地址:

    打开aar根目录下build.gradle文件,如果是从huawei的maven下载对应组件,此处不需要修改

    allprojects {
        repositories {
            maven { url 'https://developer.huawei.com/repo' }
            google()
            jcenter()
        }
    }
  4. 填入需要合并的maven库组件信息:

    修改aar/build.gradle文件,示例中是下载agconnect-crash组件的1.2.1.300版本

    **注意:**只需要填入最顶层的信息即可,会自动将传递依赖包都下载合并

    dependencies {
        //填入需要集成的maven仓里的goup:artifact:version
        transform "com.huawei.agconnect:agconnect-auth:1.2.1.300"
    }
  5. 执行转换AAR为eclipse工程:

    打开aar2eclipse根目录下build.bat文件,执行成功后,会在日志中打印输出的eclipse工程文件夹路径(即根目录下的eclipse文件夹)

    [fat-aar]============out dir============: D:\temp\aar2eclipse\aar\eclipse
    
    D:\temp\aar2eclipse\aar\eclipse>dir
    2019/09/20  15:03    <DIR>          .
    2019/09/20  15:03    <DIR>          ..
    2019/09/20  15:03             1,198 AndroidManifest.xml
    2019/09/20  15:03    <DIR>          assets
    2019/09/20  15:03    <DIR>          libs
    2019/09/20  15:03                64 project.properties
    2019/09/20  15:03    <DIR>          res
  6. eclipse的工程文件已经转换好了,开发者可以将其作为Android Library引用到自己的工程中

    eclipse_sub_projec

注意事项

  1. assets目录:由于eclipse不能自动合并assets目录,请手动将assets文件夹里的文件拷贝到app工程的assets里

  2. **${applicationId}:**由于eclipse不支持$符号,请手动修改AndroidManifest.xml中的${applicationId}为apk自己的packagename,例如:

    <!--修改前-->
    <provider
        android:name="com.huawei.agconnect.core.provider.AGConnectInitializeProvider"
        android:authorities="${applicationId}.AGCInitializeProvider"
        android:exported="false" />
    
    <!--修改后-->
    <provider
        android:name="com.huawei.agconnect.core.provider.AGConnectInitializeProvider"
        android:authorities="com.lucky.agc.demo.AGCInitializeProvider"
        android:exported="false" />
  3. 加载JSON代码:

    public class MainApplication extends Application {
        @Override
        protected void attachBaseContext(Context context) {
            super.attachBaseContext(context);
            AGConnectServicesConfig config = AGConnectServicesConfig.fromContext(context);
            config.overlayWith(new LazyInputStream(context){
                public InputStream get(Context context) {
                    try {
                        return context.getAssets().open("agconnect-services.json");
                    } catch (IOException e) {
                        return null;
                    }
                }
            });
        }
    }
  4. **manifest:**由于eclipse默认不支持AndroidManifest.xml文件的合并,需要在app工程的project.properties中增加一个配置项

    manifestmerger.enabled=true

感谢:

https://github.com/kezong/fat-aar-android

About

aar to eclipse library

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages