it-swarm.dev

cordova çalıştırmak Android iyi yürütür. Ancak Android 4.1.2 uygulamayı başlatmıyor

Cordova 5.0.0 (cordova -v print.0.0) kullanarak Android uygulamasını geliştirmeye ve Android 4.1.2 ..__ ile Moto Razr D1 üzerinde test etmeye başladım.

cordova build 

ve/Android/build/output/apk/Android-degug.apk platformlarının SD'ye manuel olarak kopyalanması ve kurulması düzgün çalışıyor.

cordova emulate Android 

android sürümü> 4.1.2 olan emülatörde çalışıyor

cordova run Android 

başarıyla oluşturuyor, tamam gibi görünen apk platformları/Android/build/output/apk/Android-debugger.apk komutunu kullanıyor diyor. ancak bu ekran görüntüsünde gördüğünüz gibi 

Razr Ekran Görüntüsü

Bu "DUVAR KAĞIDI/YÖNETİM/AYARLAR" olayı gerçekleşir, hepsi bu.

Eğer uygularsam:

cordova emulate Android

Android 4.1.2 Jelly'e sahip bir emülatörde, eşit çıktı

BUILD SUCCESSFUL

Total time: 6.352 secs
Built the following apk(s):
    C:\Android\Some\platforms\Android\build\outputs\apk\Android-debug.apk
Installing app on emulator...
Using apk: C:\Android\Some\platforms\Android\build\outputs\apk\Android-debug.apk
Launching application...
LAUNCH SUCCESS

aynı "WALLPAPAER/MANAGE/SETTINGS", işte başka bir ekran görüntüsü Emulator Ekran Görüntüsü

Bu sorunun nasıl çözüleceği hakkında bir fikriniz var mı? Şimdiden teşekkürler...

Not: Eğer daha önce apk yüklediysem, Razr WALLPAPER/MANAGE/SETTINGS meselesi yerine eski versiyonunu başlatır. Bu yüzden, cordova komutlarını çalıştırmayı denemeden önce onu kaldırmam gerekiyor.

28
gerumato

Aynı problemle karşılaştım ( Cordova "merhaba dünya" uygulaması görünmüyor ) ve içinden geçmek için bir yol buldum (fakat altta yatan nedenleri gerçekten anlamıyorum).

Apk yüklerken sorun oluşuyor gibiydi. Cordova 5.0.0'da, apk'ü yüklemek için adb komutları\platformlar\Android\cordova\lib\device.js 101. satırında (ve cordova için\Android\cordova\lib\emulator.js platformlarının 311 satırında bulunabilir) Android öykünmek):

adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"

Geçerli komut bana geri dönüyor: "Hata: bilinmeyen seçenek -d"!

Eğer sadece "-d" seçeneğini silerseniz, Android işletim sistemiyle normal çalışan uygulamalar çalışır. 

DÜZENLE

-d, kurulumdan sonra doğrudan adb'dan sonra (--device'da olduğu gibi) gelmelidir. Böylece, kaldırmak yerine oraya taşıyabilirsiniz.

Artı, işte Apache cordova sorunu izleyicisinde açılan sorun

44
proprit

İşte bilmiyorsanız, kontrol etmeniz ve farkında olmanız gereken birkaç şey:

  • CLI sürüm cordova -v mutlaka platform sürüm cordova platform ile eşleşmeyecek
  • Farklı platformlar arasındaki platform sürümleriniz (eğer varsa) eşleşmeyebilir. Örneğin, Android iOS'tan farklı bir platform sürümüne sahip olabilir.

Cordova-Android sdk'nin en son sürümüne güncellediyseniz, lütfen releasenotes.md dosyasını okuduğunuzdan emin olun: https://github.com/Apache/cordova-Android/blob/master/RELEASENOTES.md

SD'nin ne olduğundan emin değilim ama uygulamalarımı aracılığıyla yükledim. 

adb install <path_to_apk>

Yüklenen apk'nü cihazınıza karşılaştırdıktan ve kontrol ettikten sonra, hata ayıklamanın emülatörden daha kolay olduğuna inanıyorum, Android Debug Bridge with logcat :

adb -d logcat

Öykünücüsü aracılığıyla logcat ile hata ayıklamayı tercih ederseniz, o zaman:

adb -e logcat

Buradaki ayrıntı seviyesini azaltmak için fazladan hata ayıklama bayrakları var: http://developer.Android.com/tools/debugging/debugging-log.html . Aşağıdaki gibi süzgeç belirtimi ayarlamanız gerekir, örneğin: adb logcat ActivityManager:I MyApp:D *:S. Neredeyse tüm hata ayıklama iletilerini yakalamak için adb logcat *:D kullanmayı tercih ediyorum, ancak ayrıntılarını biraz azalttım.

Umarım, logcat'ın bağlantısı ve başlatılmasıyla, sorununuza neden olmak için hangi hataların olabileceğini yakalayabilirsiniz.

EDIT: Krom tarayıcı geliştirici araçlarıyla cihaz hata ayıklaması yapmanın bir başka yöntemi: https://developer.chrome.com/devtools/docs/remote-debugging

Genel olarak, yukarıdaki linkten gelen adımlar:

Gereksinimler: Chrome 32 ya da üstü, Android cihaza bağlanmak için USB kablosu, tarayıcı hata ayıklama Android 4.0+ gerektirir, uygulama hata ayıklama Android 4.4+ gerektirir

  1. Aygıtta USB hata ayıklamasını etkinleştirin: Ayarlar> Geliştirici seçenekleri. Android 4.2+ cihazınız varsa, geliştirici seçenekleri varsayılan olarak gizlenir. Ayarlar> Telefon hakkında seçeneğine tıklayın ve Yapı numarası yedi kez üzerine dokunun.
  2. "Geliştirici seçenekleri" nde USB hata ayıklama onay kutusunu seçin.
  3. USB hata ayıklamasını açtığınızı onaylamak için OK düğmesine tıklayın.
  4. USB kablosunu kullanarak cihazınızı bilgisayarınıza bağlayın.
  5. Chrome tarayıcısını açın ve arama/adres çubuğuna chrome: // inspect yazın.
  6. USB aygıtlarını keşfet için onay kutusuna tıklayın.
  7. Cihazınızda bir uyarı İstemi belirir. OK öğesini tıklayın.
  8. Chrome: // inspect sayfası şimdi bağlı cihazınızı göstermelidir. Cihazın "denetle" bağlantısını tıklayın. Chrome geliştirici araçları görünmelidir.

Yukarıdaki uzaktan hata ayıklama bağlantısında, canlı ekran gösterimi, proxy kurulumu, bağlantı noktası iletme ve sanal Ana Bilgisayar eşlemesi hakkında daha fazla bilgi var.

11
jojo

Cordova 6.1.1 kullananlar ve uygulamayı açma/yükleme konusunda benzer bir problem yaşamayanlar için, benim için çalıştığım şey Android emülatörünü bir ana ekranla açmak için bir kez ionic emulate Android çalıştırmaktı. Ardından, başka bir terminal penceresinde, uygulamayı önceden açılmış emülatöre yükleyen ionic emulate Android komutunu çalıştırın ve her şey normal şekilde çalıştı.

Burada benzer bir problem bulundu: https://forum.ionicframework.com/t/ionic-serve-works-correctly-ionic-emulate-Android-just-displays-Android-emulator-home-screen/53524/6

3
Lukáš Černý

Çözüm: Edit emulator.js altında platformlar\Android\cordova\lib

Satır 311'e gidin ve satırı yorumlayın

// return exec('adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"', os.tmpdir())

ve yeni satır yapıştır

return exec('adb -s ' + resolvedTarget.target + ' install -r  "' + apk_path + '"', os.tmpdir())

işe yarıyor.

0
Aysad K.

Device.js ve emulator.js'deki kodu değiştirmek benim için işe yaramadı (ve aslında cordova build Android'nin artık işe yaramayacağı bir hata getirdi). Sorunum tamamen farklıydı: AndroidManifest.xml dosyamda iki tane <application>s vardı ve görünüşe göre izin verilmiyor.

Çizgi boyunca bir yerde AndroidManifest.xml dosyama <application Android:debuggable="true" /> ekledim. Ancak, bu dosya zaten şuna benzeyen bir "uygulama" elemanı vardı:

<application Android:hardwareAccelerated="true" Android:icon="@drawable/icon" Android:label="@string/app_name" Android:supportsRtl="true">

Böylece "debuggable" satırını varolan <application> 'a ekledim (ve ikinci <application>' yi kaldırdım) şöyle:

<application Android:debuggable="true" Android:hardwareAccelerated="true" Android:icon="@drawable/icon" Android:label="@string/app_name" Android:supportsRtl="true">

Ondan sonra cordova build Android kullanarak yeniden yaptım, cihazımda cordova run Android ile başarıyla çalıştırdım ve ellerimi çırptı ve köpeğimi korkuttum.

NASIL, bu senin sorunun olmasa bile, işte sorunu nasıl keşfettim: jojo'nun cevabındaki talimatları takip ettim ve cihazım bağlıyken adb logcat komutunu çalıştırdım. O terminal tırnağı anında kesilebilir bokla doldu.

Sonra aynı anda görüntüleyebileceğim yeni bir terminal penceresi açtım, logcat çıktısındaki en son zaman damgasını not ettim ve cordova run Android komutunu çalıştırdım. Ekran daha fazla saçmalıkla doldu ve sonra bir şey sakinleştikten sonra başlangıç ​​saatime geri döndüm ve satır satır inceledim. Sonunda suçluyu buldum:

PackageParser: <manifest> has more than one <application>

Bu yardımcı olur umarım!

0
Sarah

benim için bu hile mükemmel -d kaldırarak çalıştı 

fakat apk manullay'ı telefona transfer ederek ilk kez kurmak zorunda kaldım ve sonra doğrudan iyonik Android kullanarak uygulamayı çalıştırabilirim

umarım bu birine yardımcı olur

0
Mr Megamind

Basit kullanmaya çalışın -

cordova run anroid

Bağlı bir cihaz yoksa, "Hedef belirtilmemiş ve hiçbir cihaz bulunamadı, öykünücüye konuşlandırma" gösterilecek ve öykünücüyü başlatacaktır. 

0
Bajrang Hudda