2010-08-11 19 views
5

Motorola Droid'te NDK ile bir uygulama oluşturmaya çalışıyorum. Ben talimatları here takip ediyorum ve bir emülatör üzerinde geçmişte başarı elde ettik (Açıkçası root erişimi var) ama çalıştığınızda adb kabuk aracılığıylaMotorola Droid'de Yerel Kod Hata Kodu

gdbserver :5039 --attach 1082 

başlatmak için, bir gdbserver:permission denied olsun. Açıkçası bu bir stok Droid olduğu için, root erişimim yok. Bu gerekli mi? Sadece bir şeyi özlüyor muyum?

Şimdiden teşekkürler!

Düzenle Bu komutun emülatörde çalıştığını onaylıyorum. Bu köklü olmayan bir cihazda yapılabilir mi?

Edit 2 Ayrıca bir EVO 4G üzerinde aynı Permission Denied hataları görmüştür.

Düzenleme 3 Ayrıca bir üretim aygıtının (örn. EVO 4G veya Droid) bana "bulunamadı" hatası vermeyeceğini de keşfettim. Örneğin, kabukta ljs gibi rastgele bir şey yazdığımda, ljs: permission denied alırım. Komut mevcutsa ve buna erişemediğimde (sudo - muhtemelen) veya komut mevcut değilse (ljs) hata aynıdır.

+0

Emin değilim ... ama gdb ile hata ayıklamak için Android 2.2'ye ihtiyacınız yok mu? Droidinizde Android 2.2 var mı? – hara

+0

Hatırladığım kadarıyla, gdb talimatları/NDK 2.2'den önce var. Bunu onaylayan var mı? –

+0

"Köklü" olmayan aygıtların bile imtiyazlı konsol komutlarına erişmek için adb ile "su" çalıştırabileceğini düşünüyorum, ama denemedim. Çalışırsa bana haber ver ve uygun bir cevap vereceğim. –

cevap

2

Eğer r4 NDK'yi kullanıyorsanız, bunu çok yapmak zorunda değilsiniz. Bunun yerine:

  1. android ekleyin:, kütüphaneler (NDK ile inşa edilmiş) herhangi yerli için lütfen ApplicationManifest.xml uygulama düğümü
  2. yılında Hata ayıklaması = "true" bunları oluşturmadan önce 1. tekrarlayın (eğer bir ekstra biraz dikkat etmelidir ndk-build'in gdbserver ve gdb.setup dosyalarını kopyaladığını gösterirken bilgi)
  3. İstenilen seçeneklerle $ NDK_ROOT/ndk-gdb'yi açın (örneğin: Yerel aygıta basmadan önce genellikle Eclipse'i kırıyorum sonra -E'yi kullanarak iliştir seçenek)
1

Sana verdiğim linkte

 
gdbserver :5039 --attach pid 

uyarınca 'localhost' için hiçbir başvurusuna bakın - Eğer port gönderilmesini de .... o ahize üzerinde

 
adb forward tcp:5039 tcp:5039 

iş istasyonundan mı?

Ayrıca

:

 
If you can't find either special version of gdb, run find prebuilt -name 
arm-eabi-gdb in your source tree to find and run the latest version 

kullanmakta denediniz 'kol-EABI-gdb' açık sürümüyle yukarıdaki gdb değiştirerek yerine ....?

+0

"localhost" öğesini şanssız bıraktım.Sunucumdaki gdb sürümlerinden hiçbirini denemedim, çünkü aygıtı aygıtta başlatamadım. –