如何编译外部库并将其添加到我的Android Studio项目中

时间:2017-07-22 14:08:28

标签: java android

我是Android开发人员的新手,我希望这些问题可以轻松解答:

我正在尝试将this添加到我的Android Studio项目中。我已经设法让它与互联网开发盒一起工作,但现在我正在尝试对离线版本做同样的事情。

我想我想将它添加为“库”,而不是“模块”,因为我不想更改它并处理未来的版本合并。

我已经下载了tar.gz文件,我看到的唯一.jar或.aar文件是“gradle-wrapper.jar”。为什么他们包含编译的gradle代码?

我是否应该提取此.tar.gz并将Android Studio指向它以将其视为单独的项目以编译.aar / .jar文件?我该如何知道要处理项目目录的目录?多个目录包括build.gradle文件。

一旦我有.jar / .aar,我应该把它放在哪里?这里有很多“lib”目录。

提前致谢!

2 个答案:

答案 0 :(得分:0)

您要添加的项目可在在线maven存储库中找到。您可以使用Gradle添加几行脚本而不是从源代码下载和编译,然后手动添加到库目录。

Gradle是一个依赖项管理器,它能够从在线存储库中提取依赖项并自动将其添加到项目中。根据您的IDE,您可能需要在继续之前安装与Gradle / Maven相关的插件。然后,按照"安装"中项目自述文件中的说明进行操作。只需在build.gradle中添加这些行,您的IDE就应该开始从存储库下载库并将其添加到项目中。

答案 1 :(得分:0)

尤里卡! 哇,这不直观。整个系统似乎真的,真的想要一个互联网连接。更严肃的公司如何为Android开发软件?当然,他们并没有抓住任何挂在外部存储库周围的文件,而是继续使用它们吗?

从这里回答:http://www.b2cloud.com.au/tutorial/using-local-android-library-packages-aar/

似乎没有办法在GUI中执行此操作。

Gradle和Android Studio不支持.AAR文件以及.JAR文件。这让我很奇怪。我想这些文件格式之间的差异比我想象的要多。

引入外部.AAR文件:

  1. 将它复制到你的开发盒可以访问的地方。最合乎逻辑的地方似乎是" AndroidStudioProjects / yourapp / app / libs"
  2. 通过添加"存储库"告诉gradle。和"编译"以下行到你的app模块的gradle文件(AndroidStudioProjects // app / build.gradle):
  3. apply plugin: 'com.android.application'
    
    // first important part: tell gradle to treat the libs folder as a repo.
    repositories{
        flatDir {
            dirs 'libs'
        }
    }
    
    android {
        compileSdkVersion 26
        buildToolsVersion "26.0.0"
        defaultConfig {
            applicationId "com.example.user.simplelocationtester"
            minSdkVersion 14
            targetSdkVersion 26
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
    
         

    {               排除组:' com.android.support',module:' support-annotations'           })           编译' com.android.support:appcompat-v7:26。+'           compile' com.android.support.constraint:constraint-layout:1.0.2'           testCompile' junit:junit:4.12'

        //here's the 2nd important part: specify the AAR file
        compile(name:'Android-SimpleLocation-v1.0.1', ext:'aar')
    }