2016-04-22 57 views
5

İçinde ayrı bir android kütüphane modülüne sahip bir Android uygulaması projem var. Bir kütüphaneyi kaynaklardan veya yayınlanmış artefaktı kullanmanın arasındaki sırayı değiştirmek için bir yetenek eklemek istiyorum. Android uygulaması varsayılan olarak ikili eser bağlıdır:Gradle - Bir Kütüphane ile Android App için BağımlılıkKullanım Olumsuzluk

compile "com.example.konstantin.mylibrary:mylibrary:${mylibraryVersion}"

Şimdi benim ikili eser kaynak kodu ile değiştirilir istiyorum, bu yüzden kök build.gradle dosyasında aşağıdaki kodu ekleyin:

configurations.all { 
resolutionStrategy { 
    dependencySubstitution { 
     substitute module("com.example.konstantin.mylibrary:mylibrary:${mylibraryVersion}") with project(':mylibrary') 
    } 
} 

Ancak gradle oluşturmaya çalıştığımda hala ikili eseri alıyor. Burada sorun nedir?

here is the full source code

Ayrıca ilginç olduğunu gradle aşağıdaki iletiyle inşa etmek başarısız daha ben allprojects bölüme veya uygulama modülü build.gradle dosyasına bağımlılık ikame kodu taşırsanız: Sonunda

Error:Module version MyApplication:app:unspecified, configuration '_debugCompile' declares a dependency on configuration 'default' which is not declared in the module descriptor for MyApplication:mylibrary:unspecified 
+1

[Bu android eklenti hatası] (https://code.google.com/p/android/issues/detail?id=189483) sorununla ilgili olabilir – akd005

cevap

1

Ben çalışan bir çözüm buldu. Her nasılsa, başka bir şekilde yaparsam işe yarıyor. Bunun yerine proje modülü

substitute module("com.example.konstantin.mylibrary:mylibrary:${mylibraryVersion}") with project(':mylibrary') 

ile ikame ikili I ikili proje modülünü yerine kullanabilirsiniz:

substitute project(':mylibrary') with module("com.example.konstantin.mylibrary:mylibrary:${mylibraryVersion}") 

Ve sihirli eserler daha. Hep settings.gradle proje modülü bağlamak ve onu kontrol etmeden inşa edemez çünkü o, ideal bir çözüm değil ancak tam çalışma kodu separate branch of an example repo

mevcuttur.