2015-08-10 2 views
0

У меня есть приложение Cordova, которое работает правильно как на эмуляторе, так и на устройствах Android. По какой-то нечетной причине приложение решило не работать на устройствах Android, пока оно все еще отлично работает на эмуляторе пульсаций. Всякий раз, когда я пытаюсь развернуть приложение на любом устройстве Android, я получаю «к сожалению [app name] остановил« предупреждение »на моем устройстве.Приложение Cordova - к сожалению [имя приложения] остановлено

После нескольких дней исследований, я все еще не могу определить причину этой проблемы, хотя я подозреваю, что это может быть связано с плагинами. Я попытался удалить некоторые ненужные плагины, но все же я не могу работать на устройствах Android.

Любые советы или рекомендации.

Config.xml

<?xml version="1.0" encoding="utf-8"?> 
<widget xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:vs="http://schemas.microsoft.com/appx/2014/htmlapps" id="com.b8ak.b8akapp" version="1.0.1" xmlns="http://www.w3.org/ns/widgets" defaultlocale="en-US"> 
    <name>B8ak بيتك</name> 
    <description>A blank project that uses Apache Cordova to help you build an app that targets multiple mobile platforms: Android, iOS, Windows, and Windows Phone.</description> 
    <author href="http://cordova.io" email="[email protected]">Eyad Alshabaan</author> 
    <content src="index.html" /> 
    <access origin="*" /> 
    <!--To Grand Access to some href tags SEE: http://stackoverflow.com/questions/26271313/tel-sms-and-mailto-no-longer-working-in-android-after-upgrading-to-cordo--> 
    <!--<access origin="tel:*" launch-external="yes"/> 
    <access origin="geo:*" launch-external="yes"/> 
    <access origin="mailto:*" launch-external="yes"/> 
    <access origin="sms:*" launch-external="yes"/> 
    <access origin="market:*" launch-external="yes"/>--> 
    <vs:features /> 
    <preference name="SplashScreen" value="screen" /> 
    <preference name="windows-target-version" value="8.1" /> 
    <preference name="windows-phone-target-version" value="8.1" /> 
    <platform name="android"> 
    <icon src="res/icons/android/icon-36-ldpi.png" density="ldpi" /> 
    <icon src="res/icons/android/icon-48-mdpi.png" density="mdpi" /> 
    <icon src="res/icons/android/icon-72-hdpi.png" density="hdpi" /> 
    <icon src="res/icons/android/icon-96-xhdpi.png" density="xhdpi" /> 
    </platform> 
    <platform name="ios"> 
    <!-- iOS 8.0+ --> 
    <!-- iPhone 6 Plus --> 
    <icon src="res/icons/ios/icon-60-3x.png" width="180" height="180" /> 
    <!-- iOS 7.0+ --> 
    <!-- iPhone/iPod Touch --> 
    <icon src="res/icons/ios/icon-60.png" width="60" height="60" /> 
    <icon src="res/icons/ios/icon-60-2x.png" width="120" height="120" /> 
    <!-- iPad --> 
    <icon src="res/icons/ios/icon-76.png" width="76" height="76" /> 
    <icon src="res/icons/ios/icon-76-2x.png" width="152" height="152" /> 
    <!-- iOS 6.1 --> 
    <!-- Spotlight Icon --> 
    <icon src="res/icons/ios/icon-40.png" width="40" height="40" /> 
    <icon src="res/icons/ios/icon-40-2x.png" width="80" height="80" /> 
    <!-- iPhone/iPod Touch --> 
    <icon src="res/icons/ios/icon-57.png" width="57" height="57" /> 
    <icon src="res/icons/ios/icon-57-2x.png" width="114" height="114" /> 
    <!-- iPad --> 
    <icon src="res/icons/ios/icon-72.png" width="72" height="72" /> 
    <icon src="res/icons/ios/icon-72-2x.png" width="144" height="144" /> 
    <!-- iPhone Spotlight and Settings Icon --> 
    <icon src="res/icons/ios/icon-small.png" width="29" height="29" /> 
    <icon src="res/icons/ios/icon-small-2x.png" width="58" height="58" /> 
    <!-- iPad Spotlight and Settings Icon --> 
    <icon src="res/icons/ios/icon-50.png" width="50" height="50" /> 
    <icon src="res/icons/ios/icon-50-2x.png" width="100" height="100" /> 
    </platform> 
    <platform name="windows"> 
    <icon src="res/icons/windows/Square150x150Logo.scale-100.png" width="150" height="150" /> 
    <icon src="res/icons/windows/Square150x150Logo.scale-240.png" width="360" height="360" /> 
    <icon src="res/icons/windows/Square30x30Logo.scale-100.png" width="30" height="30" /> 
    <icon src="res/icons/windows/Square310x310Logo.scale-100.png" width="" height="" /> 
    <icon src="res/icons/windows/Square44x44Logo.scale-240.png" width="106" height="106" /> 
    <icon src="res/icons/windows/Square70x70Logo.scale-100.png" width="70" height="70" /> 
    <icon src="res/icons/windows/Square71x71Logo.scale-240.png" width="170" height="170" /> 
    <icon src="res/icons/windows/StoreLogo.scale-100.png" width="50" height="50" /> 
    <icon src="res/icons/windows/StoreLogo.scale-240.png" width="120" height="120" /> 
    <icon src="res/icons/windows/Wide310x150Logo.scale-100.png" width="310" height="150" /> 
    <icon src="res/icons/windows/Wide310x150Logo.scale-240.png" width="744" height="360" /> 
    </platform> 
    <platform name="wp8"> 
    <icon src="res/icons/wp8/ApplicationIcon.png" width="62" height="62" /> 
    <icon src="res/icons/wp8/Background.png" width="173" height="173" /> 
    </platform> 
    <platform name="android"> 
    <splash src="res/screens/android/screen-hdpi-landscape.png" density="land-hdpi" /> 
    <splash src="res/screens/android/screen-ldpi-landscape.png" density="land-ldpi" /> 
    <splash src="res/screens/android/screen-mdpi-landscape.png" density="land-mdpi" /> 
    <splash src="res/screens/android/screen-xhdpi-landscape.png" density="land-xhdpi" /> 
    <splash src="res/screens/android/screen-hdpi-portrait.png" density="port-hdpi" /> 
    <splash src="res/screens/android/screen-ldpi-portrait.png" density="port-ldpi" /> 
    <splash src="res/screens/android/screen-mdpi-portrait.png" density="port-mdpi" /> 
    <splash src="res/screens/android/screen-xhdpi-portrait.png" density="port-xhdpi" /> 
    </platform> 
    <platform name="ios"> 
    <splash src="res/screens/ios/screen-iphone-portrait.png" width="320" height="480" /> 
    <splash src="res/screens/ios/screen-iphone-portrait-2x.png" width="640" height="960" /> 
    <splash src="res/screens/ios/screen-ipad-portrait.png" width="768" height="1024" /> 
    <splash src="res/screens/ios/screen-ipad-portrait-2x.png" width="1536" height="2048" /> 
    <splash src="res/screens/ios/screen-ipad-landscape.png" width="1024" height="768" /> 
    <splash src="res/screens/ios/screen-ipad-landscape-2x.png" width="2048" height="1536" /> 
    <splash src="res/screens/ios/screen-iphone-568h-2x.png" width="640" height="1136" /> 
    <splash src="res/screens/ios/screen-iphone-portrait-667h.png" width="750" height="1334" /> 
    <splash src="res/screens/ios/screen-iphone-portrait-736h.png" width="1242" height="2208" /> 
    <splash src="res/screens/ios/screen-iphone-landscape-736h.png" width="2208" height="1242" /> 
    </platform> 
    <platform name="windows"> 
    <splash src="res/screens/windows/SplashScreen.scale-100.png" width="620" height="300" /> 
    <splash src="res/screens/windows/SplashScreen.scale-240.png" width="1152" height="1920" /> 
    <splash src="res/screens/windows/SplashScreenPhone.scale-240.png" width="1152" height="1920" /> 
    </platform> 
    <platform name="wp8"> 
    <splash src="res/screens/wp8/SplashScreenImage.jpg" width="480" height="800" /> 
    </platform> 
    <vs:plugin name="org.apache.cordova.geolocation" version="0.3.12" /> 
    <vs:plugin name="org.apache.cordova.network-information" version="0.2.15" /> 
    <vs:plugin name="com.microsoft.azure-mobile-services" version="1.2.8" /> 
    <preference name="KeepRunning" value="True" /> 
    <preference name="ShowTitle" value="False" /> 
    <preference name="InAppBrowserStorageEnabled" value="True" /> 
    <preference name="SuppressesIncrementalRendering" value="False" /> 
    <preference name="Fullscreen" value="False" /> 
    <vs:plugin name="org.apache.cordova.device" version="0.3.0" /> 
    <vs:plugin name="org.apache.cordova.statusbar" version="0.1.10" /> 
    <preference name="target-device" value="handset" /> 
    <vs:plugin name="org.apache.cordova.inappbrowser" version="0.6.0" /> 
</widget> 

AndroidManifest.xml

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="10001" android:versionName="1.0.1" package="com.b8ak.b8akapp" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> 
     <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustResize"> 
      <intent-filter android:label="@string/launcher_name"> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <receiver android:name="msopentech.azure.NotificationHub$PushNotificationReceiver" android:permission="com.google.android.c2dm.permission.SEND"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <category android:name="io.cordova.myapp67592dd97b174b21bbc07f89808a88f9" /> 
      </intent-filter> 
     </receiver> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.TriggerReceiver" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.ClearReceiver" /> 
     <activity android:exported="false" android:launchMode="singleInstance" android:name="de.appplant.cordova.plugin.localnotification.ClickActivity" android:theme="@android:style/Theme.NoDisplay" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.notification.TriggerReceiver" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.notification.ClearReceiver" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.RestoreReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
     <activity android:exported="false" android:launchMode="singleInstance" android:name="de.appplant.cordova.plugin.notification.ClickActivity" android:theme="@android:style/Theme.NoDisplay" /> 
    </application> 
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="21" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <permission android:name="io.cordova.myapp67592dd97b174b21bbc07f89808a88f9.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
    <uses-permission android:name="io.cordova.myapp67592dd97b174b21bbc07f89808a88f9.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
</manifest> 

ответ

2

Я отлажена приложение, подключив мое устройство во время работы Android Studio и анализ результатов LogCat. Я заметил, что плагин StatusBar выдавал ошибку. Я удалил его и добавил его снова в свой проект, и теперь все работает отлично :)

+0

У меня была такая же проблема с памятью cordova-sqlite. То же решение: удалите плагин, добавьте его снова и перестройте. –

4

Я знаю, что это старый поток, но я расскажу, как я диагностировал свое приложение.

Использование окна CMD: adb logcat | findstr /R /C:"com.company.application"

Это позволит убедиться, что LogCat слушает ваше приложение. Затем я ctrl + c сразу после появления сообщения об ошибке. Я выбрал весь вывод журнала из консоли и вставил в блокнот, а затем искал ключевое слово «FATAL», скорее всего, это преступник.

Смежные вопросы