2015-10-18 98 views
2

我正在使用Android Studio並構建Android庫項目,因此我分發了aar文件。更具體地說,我只是在裏面分發jar(是的 - 客戶仍在使用Eclipse,所以我手動將jar與manifest,res等衆所周知的過程結合起來)。Android Studio Gradle build「apply plugin:'com.android.library'」:aar missing files

這是我的搖籃構建腳本(常規默認...):

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "23.0.0" 

    lintOptions { 
     abortOnError false 
    } 

    defaultConfig { 
     // Ain't applicationIdNot 
     minSdkVersion 11 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    sourceSets { 
     main { 
      java { 
       srcDir 'src/main/java' 
      } 
      resources { 
       srcDir 'src/../lib' 
      } 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile '...' 
} 

的問題是:在一個Java包一起普通的Java類我有ttf字體文件。這是由於歷史原因,現在項目的複雜性不允許進行更改並將其移至實際需要的位置。

嗯 - 這個jar文件丟失了。如何實現arr內的jar這樣的構建過程將包含這些文件 - 因爲畢竟 - 它是常規存檔,並且這些文件在文件樹中已經壓縮到jar中。

感謝,

+0

主機thefonts和loadem動態,你可以需要指定android瓶蓋內曾經兩次sourceSets關閉之後再次。就像谷歌字體 –

+0

@RobertRowntree謝謝,我不想通過這個問題,而是瞭解如何自定義構建腳本。現在我正在做的是解壓縮jar,使用終端手動添加文件並壓縮回jar。 – michael

回答

1

只要指定包括在您sourceSets關閉文件

// if you want to include the files in your aar 
android { 
    ... 
    sourceSets { 
     main { 
      resources.includes = [ '**/mySweetFont.ttf' ] 
     }   
    } 
} 

// to include in your jar 
sourceSets { 
    main { 
     resources.includes = [ '**/mySweetFont.ttf' ] 
    }   
} 

這將放置在文件製作神器的根源。對於jarandroid關閉

+0

嗨,謝謝。但這不起作用。請注意,tff文件的位置在一些java包內。 – michael

+0

我爲此打開了更具體的問題,因爲您的回答讓我專注於專注的內容。 http://stackoverflow.com/questions/33208453/android-gradle-aar-build-include-exclude-files-from-jar – michael