2017-08-03 96 views
1

几个星期前,我发布了一个关于此的问题,但没有得到任何回应。所以我再次发布一个更清晰的问题/问题。Ionic 2 - Android发布版本在启动屏幕后停留在白屏上

我的问题:

1)我运行:

$ ionic cordova build android --release --prod 

2)然后我签字。

3.)然后我上传到谷歌播放。

4.)然后我从谷歌播放下载它,应用程序点击启动画面,然后在初始屏幕在较低版本的Android(到目前为止6.0.0版本以下)关闭后卡在白色屏幕上。

要验证它是我的应用程序是问题,我使用“超级”模板通过离子cli创建了一个新应用程序。然后我建立,签署并上传完全相同的方式。我从谷歌播放下载它,它的工作。我将它制作成了应用程序,包括6.0.0以下的版本。

所以,我的问题是

  • 我怎么看是什么原因造成的问题,如果它只是在释放/生产建设情况?

  • 有没有方法可以调试?

  • 有没有已知的功能(管道,面具,模块等),角度/离子的使用不适用于老版本的Android的旧版本的浏览器中可能会导致这种情况吗?

项目信息:

@ionic/cli-plugin-cordova  : 1.6.1 
@ionic/cli-plugin-ionic-angular : 1.4.1 
@ionic/cli-utils    : 1.7.0 
ionic (Ionic CLI)    : 3.7.0 

全球套餐:

Cordova CLI : 7.0.1 

本地套餐:

@ionic/app-scripts : 2.1.3 
Cordova Platforms : android 6.2.3 ios 4.4.0 
Ionic Framework : ionic-angular 3.6.0 

系统:

Node  : v6.11.0 
OS   : macOS Sierra 
Xcode  : Xcode 8.3.3 Build version 8E3004b 
ios-deploy : 1.9.1 
npm  : 3.10.10 

配置文件:

<preference name="android-minSdkVersion" value="16" /> // This is the same as the default value generated by ionic-cli 

// I use the hide() function in platform.ready() of my app.component to hide the splash screen. Did the same in the test generated app. Shouldnt be the issue. 
<preference name="SplashMaintainAspectRatio" value="true" /> 
<preference name="FadeSplashScreenDuration" value="500" /> 
<preference name="SplashShowOnlyFirstTime" value="false" /> 
<preference name="AutoHideSplashScreen" value="false" /> 
<preference name="SplashScreen" value="screen" /> 
<preference name="SplashScreenDelay" value="30000" /> // Arbitrary time. platform.ready() should be called way before this. 
<preference name="loadUrlTimeoutValue" value="700000" /> // Added this because it was recommended for larger app sizes..? 

我的插件(我看到别人造成了由模块导入类似的问题..?):

<plugin name="cordova-plugin-console" spec="^1.0.5" /> 
<plugin name="cordova-plugin-contacts" spec="^2.3.1" /> 
<plugin name="cordova-plugin-device" spec="^1.1.4" /> 
<plugin name="cordova-plugin-fingerprint-aio" spec="^1.2.1" /> 
<plugin name="cordova-plugin-geolocation" spec="^2.4.3"> 
    <variable name="GEOLOCATION_USAGE_DESCRIPTION" value=" " /> 
</plugin> 
<plugin name="cordova-plugin-googlemaps" spec="^1.4.3"> 
    <variable name="API_KEY_FOR_ANDROID" value="AIzaSyBbYqJI-CZfV8_Zmj3laEGMbHsQenYo3V4" /> 
    <variable name="API_KEY_FOR_IOS" value="AIzaSyBbYqJI-CZfV8_Zmj3laEGMbHsQenYo3V4" /> 
    <variable name="NSLOCATIONWHENINUSEUSAGEDESCRIPTION" value="Show your location on the map" /> 
    <variable name="NSLOCATIONALWAYSUSAGEDESCRIPTION" value="Trace your location on the map" /> 
</plugin> 
<plugin name="cordova-plugin-http" spec="^1.2.0" /> 
<plugin name="cordova-plugin-inappbrowser" spec="^1.7.1" /> 
<plugin name="cordova-plugin-nativegeocoder" spec="^1.0.2" /> 
<plugin name="cordova-plugin-nativestorage" spec="^2.2.2" /> 
<plugin name="cordova-plugin-screen-orientation" spec="^1.4.3" /> 
<plugin name="cordova-plugin-secure-storage" spec="^2.6.8" /> 
<plugin name="cordova-plugin-splashscreen" spec="^4.0.3" /> 
<plugin name="cordova-plugin-statusbar" spec="^2.2.2" /> 
<plugin name="cordova-plugin-whitelist" spec="^1.3.1" /> 
<plugin name="cordova-sqlite-storage" spec="^2.0.4" /> 
<plugin name="ionic-plugin-deploy" spec="^0.6.7" /> 
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" /> 
<plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" spec="^3.2.2" /> 
+0

你是否尝试过使用本地apk版本的发布模式而无需通过谷歌播放?你检查了Android日志(adb logcat)吗? – QuickFix

+0

你有没有找到解决方案..我在生产生成/运行有同样的问题 – Yasir

+0

我不会称之为一个解决方案,但我安装了Crosswalk插件,它的工作。唯一的缺点是,我注意到它增加了约30mb的包装尺寸... https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview – Everett

回答

0

我最终删除Android和iOS平台,重新安装它们,并再次安装crosswalk。不是100%确定它是否是人行横道,修复它可能是我做了一些小的代码更改。

一般来说,当加载屏幕是无限的,这是你的代码问题。