2012-11-27 26 views
10

Telefon Defterinde/Android projemde (proje/bin/dexedLibs) bir klasör oldukça yakın bir zamanda ve bu klasörde iki .jar dosyası bulunduğunu fark ettim. İnternetin etrafını çizdikten sonra, yazarın ADT sürüm 21'in daha hızlı yapım süreleri sağlamak için projeye "ön doldurulan Lib'leri" yerleştirdiğini belirttiği bir web sitesi buldum.android projesinde dexedLibs klasörü

Son zamanlarda ADT 21'e yükseltme yaptım ve bu "önceden sakatlanmış Lib'lerin" gerçekte ne yaptığını bana başka kimsenin verebilir mi? İnternette başka hiçbir yararlı bilgi bulamadım.

cevap

10

Yaklaşık 20 dış kütüphanesi olan bir Android projem var. ADT 21'den önce, kaynak kodunu değiştirdiğimde her defasında uygulamayı yeniden oluşturmak için çağlar sürdü. Şimdi oldukça hızlı!

Bunun sebebi, ADT 21'den önce, eclipse'de "Çalıştır" düğmesine her basışınızda harici kütüphaneleri dex koduna derlemiş olmasıdır. Şimdi dış kütüphaneler için dex kodunu derhal bir kere derler (değişene kadar) ve daha sonra "Run" lar için prebuild kütüphanelerini kullanırlar.

Bu özelliği sevdim!

+0

Teşekkür Jane - Bu o bu özellik kez "daha hızlı inşa" ile yardımcı olur deyince yazar ne anlama geldiğini doğruluyor. – Boyds

5

Dikkat! Ben sadece istisna olsun nedenini öğrenmek için bir saat harcadım: Ben çalışma yöntemi ile yeni kavanoz (aynı ad) benim lib kavanoz değiştirdi ve ADT 21 yoktu çünkü

Caused by: java.lang.NoSuchMethodError: 

sebebi Yeni bir tane dexedLibs içinde hazırlamak.

Bu yüzden sadece bin dir'i silin ve Eclipse bunu yeniden oluşturur.

0

Soru şu anda yaklaşık 2 yaşında ama hala ilgi çekicidir.

Daha sonra buraya göz atan kişiler için: Sorun yaşamadım çünkü bir Cordova projesini my.name.a3e'dan my.name.A3E'a dönüştürdüm ve sonra da oluşturma işlemi çöktü. Ant-build'deki saklı dosyaların yenilenmediğini ortaya çıkardı (büyük küçük harf duyarlılığı). ant-build klasörünü sildikten sonra iyi çalıştı, ancak yapı ilk kez daha uzun sürdü.

Bir dex dosyası bir Dalvik yürütülebilir dosyayı, Dalvik sanal makine tarafından çalıştırılabilir bazı derlenmiş bayt kodudur. Dalvik, Android'in temel bir bileşenidir, bu yüzden oradadır.

http://sourceforge.net/projects/dexer/ temiz Eclipse projesi indekslenir kütüphanelerini kaldırmayacağını göz http://developer.android.com/reference/dalvik/system/DexFile.html http://fileinfo.com/extension/dex

Not.