Android Gradle adding external library and nested external libraries to a project

后端 未结 3 798
抹茶落季
抹茶落季 2021-02-02 16:18

How do i add an external library and nested external libraries to an android project?


My project structure (Not allowed to change)

  • A
相关标签:
3条回答
  • 2021-02-02 16:53

    In your top level settings.gradle (App1/settings.gradle) file do something like this for each library

    include ':library1'   
    include ':library2'   
    include ':library3'   
    include ':library4'   
    
    project(':library1').projectDir = new File(rootProject.projectDir, '../libraries/library1')
    project(':library2').projectDir = new File(rootProject.projectDir, '../libraries/library2')
    project(':library3').projectDir = new File(rootProject.projectDir, '../libraries/library3')
    project(':library4').projectDir = new File(rootProject.projectDir, '../libraries/library4')
    

    Remove the other settings.gradle files, you don't need them

    then in each build script you only need to use

    compile project (':library1')
    compile project (':library2')
    etc....
    

    as stated above just use a single settings.gradle file in the root project (App1).

    Then from your App1 folder run gradlew clean :library1:build to validate that library1 is building correctly.

    As for the issue about App1 complaining about missing libraries 3 & 4, are you sure you have no code in the app directly referencing these libraries, either that or the libraries are not being found when compiling library1. Build each library individually to validate they all build ok.

    0 讨论(0)
  • 2021-02-02 17:00

    One question. Do you need this dependency tree?

    --- App
       |--- Library 2
       |--- Library 1
           |--- Library 3
           |--- Library 4
    

    If yes, your App does not need import the libraries 3 and 4. These dependencies are available over the Library 1.

    About settings.gradle files. Why one in each module? This file is only used in the root project (like Eclipse workspace) to reference your modules (App, Library 1, Library 2, etc...)

    This help you?

    0 讨论(0)
  • 2021-02-02 17:19

    I'm doing this for relative paths:

    include '..:ambilWarna'
    include '..:excel'
    include '..:pdfjet'
    include '..:commons'
    include '..:volley'
    
    
    include  ':odb2'
    include  ':azure'
    
    include ':carBase'
    include ':fuelTrackerLib'
    include ':comsourcecastlelogbook'
    
    0 讨论(0)
提交回复
热议问题