Tutulma döneminde, başka bir android projesinde bir android kitaplık projesine başvurulamaz


104

Bu soruyu yazarken çözmeyi başardım, bu yüzden burada başkalarının yararına tekrar edin. İşte ilk sorun:

Başka bir projede referans vermek istediğim çok basit bir kütüphane projesi oluşturdum. Bunu daha önce sorunsuz bir şekilde yaptım, bu yüzden neden bu sefer çalışmadığından emin değilim. Sahibim:

  1. Kütüphane projesini proje özellikleri aracılığıyla işaretledi. default.propertiesDosya bu kümesi vardır:android.library=true

  2. Diğer projemde proje özellikleri aracılığıyla kütüphane projeme referans eklendi. default.propertiesDosya referans beklenen yani olarak eklemiştirandroid.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. Referans verilen kütüphane projesine karşı yeşil tik yeşil renkte başlar ve ardından kırmızı çarpı işaretine dönüşür.

Bu, kütüphane projesinde yanlış / eksik bir şeyler olması gerektiği anlamına geliyor ama ne olduğunu bilmiyorum. Bu vesileyle kitaplık projem, oluşturduğum öncekinden ÇOK daha basit.


Bu çözüm benim durumumda yardımcı oldu: stackoverflow.com/questions/9283040/… Umarım birine yardımcı olur
Abeer Sul

Yanıtlar:


160

Tamam İşte dosya sistemimde referans projesinin (kitaplığı değil) default.properies dosyasını ararken bulduğum çözüm. Referanslama projesi, kütüphane projesiyle aynı tutulma çalışma alanında olmasına rağmen, gerçek dosyalar dosya sisteminde başka bir yerdeydi, yani kütüphane projesinin aynı üst klasöründe değillerdi. Referans projesini kütüphane projesiyle aynı fiziksel klasöre yerleştirir koymaz her şey yolunda gitti.

Sanırım bu, kapakların altında karınca kullanan android ile ilgili bir şey olmalı.

Düzenleme: Proje adının dosya sistemindeki klasör adıyla eşleşmesi gerekir. Proje Özellikleri-> Android-> Kitaplık Referansı'nda gördüğünüz şey, göreceli bir dosya sistemi yoludur.


3
Ayrıca sembolik bağlantıların bunun için uygun olmadığını da eklemek isterim. Tüm projelerimi birbirimle aynı klasörde farklı bir konumda (yedeklemek istediğim şeyleri koyduğum yere) ve ardından çalışma alanı klasörümde bu klasörlere bir sürü sembolik bağlantı depoladım. Onlar Yani vardı her iki yerde de birbirlerine aynı klasördeki tüm Ancak sembolik bağlantıların kullanılması hepsini yukarı haberci. Gerçek klasörü temel çalışma alanım olarak yükledikten sonra her şey yolunda gitti.
Zulaxia

7
+1 Eclipse / ADT combo'nun bu HORRIBLE davranışını ifade etmek için. Bilginize, her iki projeyi aynı fiziksel klasöre yerleştirmek bile, bu klasör bir Samba paylaşımında olursa yardımcı olmaz . Ugrrr ...
an00b

20
Bazen Eclipse referansı kaldırır, tutulmayı yeniden başlatır ve tekrar ekler, şimdi çalışmalıdır.
Warpzit

Bu, aynı çalışma alanına ait olan ve aynı çalışma alanında bulunan projelerim için bir sorundu. Projeyi kitaplıkla aynı çalışma alanına aldı ve her şey yolunda gitti. Cevap için teşekkürler.
Jayshil Dave

Çalışma alanınızın ve kitaplığınızın aynı klasör konumunda olup olmadığını kontrol edin. ADT'yi yeniden indirme hatası yaptım ve gerçek çalışma alanımın aksine C: \ users çalışma alanı altında bir proje oluşturdum. Söylemeye gerek yok, projenizin VE kütüphanenizin aynı çalışma dizininde olup olmadığını tekrar kontrol edin!
Garbit

11

Her iki projenin de aynı çalışma alanında bulunduğundan emin olun. Bunun için, projeleri içe aktarırken "projeyi çalışma alanına kopyala" kutucuğunun işaretli olduğundan emin olun.


1
Aynı kütüphane projesini başka bir projede nasıl kullanabilirim. Kırmızı renk çapraz sembol .. @Karthik gösteren o Böyle yaparsanız
Shylendra Madda

10

kütüphane projeniz mevcut çalışma alanınızdan farklı bölümdeyse aynı sorun ortaya çıkacaktır. Şu anda aynı problemim var. Git kaynağım C: ve çalışma alanımı D: 'ye taşıdım ve her şey çökmeye başladı.


4
Ana ve kütüphane projeleri farklı sürücülerdeyse , Eclipse Referans yolunu mutlaktan göreceli olarak çözemiyor gibi görünüyor ve Eclipse bundan memnun değil (yeşil onay kırmızı çarpıya dönüşüyor).
Pang

benim için de çalıştı. Referans verilen projeyi aynı sürücüde (H :) değiştirdim ve şimdi sorun yok
Tobia Zambon

4

Kitaplık yollarını doğru bir şekilde elde etmenin en basit yolu, kitaplığı aşağıdaki ekran görüntüsünde gösterildiği gibi eklemek için Eclipse'den GUI kullanmak ve Eclipse'in project.properties dosyasında doğru göreceli yolları koymasına izin vermektir. Kitaplık projelerinizin, kitaplığı kullanan ana projelerinizden büyük ölçüde farklı dizinlerde barındırılması için yaygın bir kurulumdur. Bu yöntem, "kitaplık projesi" ve onu kullanan proje aynı tutulma "çalışma alanında" ise (aynı üst klasörde "olması gerekmez") çalışır: görüntü açıklamasını buraya girin


4
Sorun, kitaplığın ve projenin farklı sürücülerde / bölümlerde olmasından kaynaklanıyor ... yukarıdaki hata listelerine bakın. Sizinki iyi çünkü kütüphane yolunuz DOS tam yolları yerine göreli yolları gösteriyor ...
kenyee

3

Lütfen kitaplık projesinin "Kitaplık" olarak işaretlendiğinden emin olun - kitaplık projesine sağ tıklayın - özellikler - Android - "Kitaplık mı" onay kutusunu işaretleyin - kitaplık projesinin proje.özelliklerinde yeni bir girişiniz olmalıdır: "android .library = true. Şimdi onu aşağıdaki gönderide açıklandığı gibi istediğiniz projeye ekleyin. (görüntü entegre edilmiş gönderi - Nilesh Pawar'dan).


1
Bu benim için gayet iyi çalıştı. Kafa karıştıran kısım, sanırım bu 'Kitaplık mı' onay kutusunun konumu. Bunun, dahil edilecek kitaplıklar için bir seçenek anahtarı değil, mevcut uygulama / kitaplık yapısının hedefini seçmesi sezgisel değildir.
EtienneSky


2

Yine aynı konuda başka bir gözlem.

Benim için aynı ana klasörde bulunan ve her ikisi de çalışma alanı içinde yerel olan iki proje. O zaman bile sorun hala devam ediyordu.

"Project.properties" dosyasını düzenledim ve kütüphane projesinin mutlak yolunu (ayırıcı için eğik çizgi '/' ile) koydum. Kaydedildi ve kapatıldı. Daha sonra proje özellikleri diyaloğuna gittim, kütüphaneyi kaldırdım (hala çarpı simgesini gösteriyordu ama abs yolu ile) ve her zamanki gibi geri ekledi. Şaşırtıcı bir şekilde sorun çözülür ve proje derlenir ve çalışır.

Bu gerçekten garip ve ADT ile ilgili bir hata olmalı. ADT 20.0.2 sürümünü kullanıyorum


+1. Aynı adlara sahip kitaplıkları değiştirirken bu sorunla karşılaştı. Tutulma (veya ADT) eskisine başvurmaya çalışıyor gibi görünüyor ve başarısız oluyor. Eclipse yeniden başlatma yardımcı olur. (Ubuntu 12.04, Eclipse Indigo, ADT 21.0.0)
Luten

2

geliştirici facebook veya başka bir kütüphane projesine referans verirken önce projeyi tutulma-> proje-> temiz projeden temizleyin. referans ekranında kırmızı çarpı hatasına izin vermek isteyenler.


2

Benim için tutulmayı yeniden başlatıyorum ve eklenen kütüphane iyi çalışıyor.

Yani ilk kez kütüphane projesini ekledikten sonra kırmızı işaretler gösteriyor. Eclipse ana projesi ve kitaplık projesi aynı çalışma alanı klasöründe olmasına ve proje klasörünün dışında kaynak dosyası olmamasına rağmen.

Böylece tutulmanızı yeniden başlatmayı deneyebilirsiniz. Mutlu kodlamalar ....


1

Benim için çözüm şuydu:

  1. Yeni bir çalışma alanı oluşturun
  2. Bu çalışma alanındaki Kütüphane Projesini İçe Aktar
  3. Bu çalışma alanında istenen projeyi içe aktarın
  4. Hem proje hem de kitaplık projesinin aynı hedef Android işletim sistemi sürümüne sahip olması
  5. Projemdeki referans kitaplık projesi

problemimi çözdüm


Yeni bir çalışma alanı oluşturmak da sorunu çözdü. Projeleri de temizlemeniz gerekiyor.
Ömer Cansızoğlu

1

Çalışma alanımı değiştirmeye çalıştığımda aynı sorunu yaşadım, bu yüzden bu benim çözümüm:

  1. Kütüphane projesi dahil tüm proje verilerini içe aktarın ve çalışma alanına kopyalayın
  2. Projeye sağ tıklayarak eski proje referansını silin -> Özellikler -> Android -> Kitaplık ve bozuk kitaplığı seçin (öyle ki onu çağırırım) ve Kaldır'ı seçin
  3. önce projeyi temizleyin (proje özelliklerini yenilemek için)
  4. kütüphane projesi Özellikler -> Android -> Kütüphane'ye gidin ve uygula'yı ve ardından Tamam'ı tıklatmıyorsa kütüphaneyi kontrol edin
  5. kütüphane projesi kütüphane zaten kontrol edilmişse, önce işaretini kaldırın, ardından kütüphane projesini temizleyin, ardından 4. Adımı tekrar uygulayın
  6. Kitaplığın içinde olmasını istediğiniz projeye gidin ve ardından projeye sağ tıklayın -> Özellikler -> Android -> Kitaplık, Ekle, ardından kitaplık projesini seçin (orada olmalı) ve Uygula ve ardından Tamam'a tıklayın
  7. Hala temiz görünmüyorsa, projeyi bir kez daha temizler ve bu işe yarar


0

Referans-yoluna önce ve sonra baktığınızda, örneğin "C: / workspace / mylib" den gelir ve doğru yere kopyalandığında "../../mylib" e gider, oldukça ilginç.


0

Bilginize,

Benim için işe yarayan şey, 'kütüphane' projelerini (gerçek projeler) çalışma alanımdan silmek (dosyaları silmeden) ve ardından sihirbazı kullanarak bunları yeniden içe aktarmak (mevcut android projesini kaynak koddan içe aktarmaktı).


Benim için de çalıştı. Projeleri yeni kaldırıp yeniden
içe aktardım

0

Soruyu gönderdiğiniz için teşekkürler. Facebook'u Android uygulamamla entegre ederken de tam olarak aynı sorunu yaşadım. Geliştirme projemi kitaplık projesinin bulunduğu aynı Windows sürücüsüne taşıyarak sorunu çözdüm. Eclipse, farklı bir sürücüdeyse bir şekilde kütüphane projesinin konumunu default.properties dosyasından düzgün okuyamaz .


0

Sufi Han'ın gönderisine benzer şekilde bu sorunu da yeniden başlatarak çözdüm. Durumum, Özellikler-> Android'e ilk eriştiğimde ve kitaplığı eklediğimde güzel bir yeşil onay işareti aldığımda farklıydı. Eclipse iletişim kutusunu kapattığımda hala sınıf bulunamadı tür hataları gösteriyordu. Özellikleri tekrar kontrol ettiğimde kırmızı X'i gördüm. Ama Bay Kahn'ın çözümü (kötü kütüphaneyi sil, Eclipse'i yeniden başlat, kütüphaneyi tekrar ekle) iyi çalıştı.

ADT paketinin 0702 sürümünü kullanıyorum ("küme" ile başlar, "ördek" ile kafiye).


0

Kabul edilen yanıtı takip ettim ama aynı zamanda "project.properties" dosyamın okunabilir olduğundan emin olmak zorundaydım.

Dosya salt okunursa (kaynak kontrolüne kaydedilmişse) tutulma onu düzenlemeyecektir. Kitaplık referansının eklenmesi başarılı olacaktır, ancak değişiklik Tamam'a tıklandıktan sonra devam etmeyecektir.

Tercihler penceresini kapatıp yeniden açmak, eklediğiniz kitaplığı kaldırıyorsa, bu sizin çözümünüz olabilir.


0

Kütüphane projeniz hala görünmüyorsa, kütüphane proje özelliklerinize kütüphane bayrağı eklemeyi deneyin.

Ekle Android.library = true

project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-17
android.library=true
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.