2017-08-10 10 views
1

私は自分のアプリケーションのためのグラデーション背景スプラッシュ画面を作るために、ここからソリューションを使用しています: how to get android gradient center light effect?Androidのグラデーションのスプラッシュ画面で5.0の瞬間再起動が発生するのはなぜですか?

私はVadymによって投稿ソリューションを使用しています:

<item > 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:startColor="@android:color/transparent" 
     android:endColor="@android:color/black" 
     android:centerX="50%" 
     android:centerY="50%" 
     android:gradientRadius="100%" 
     android:type="radial"/> 
    </shape> 
</item> 

残念ながら、これは全体を引き起こしていますAndroid 5.0の起動時にのみ電話を再起動してください! 5.1または4.4または6.0または7.0でない 何が起こっていますか?私はまだ評判が足りないので、Vadymsのソリューションについてもコメントすることはできません。誰かがコメントに警告を追加できますか?

Logcatは言う:

08-10 09:50:57.395 22267-22292/system_process E/AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: android.display 
                  java.lang.IllegalArgumentException: radius must be > 0 
                   at android.graphics.RadialGradient.<init>(RadialGradient.java:57) 
                   at android.graphics.drawable.GradientDrawable.ensureValidRect(GradientDrawable.java:938) 
                   at android.graphics.drawable.GradientDrawable.draw(GradientDrawable.java:509) 
                   at android.graphics.drawable.LayerDrawable.draw(LayerDrawable.java:537) 
                   at android.view.View.drawBackground(View.java:15352) 
                   at android.view.View.draw(View.java:15105) 
                   at android.widget.FrameLayout.draw(FrameLayout.java:592) 
                   at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2606) 
                   at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2613) 
                   at android.view.ViewRootImpl.draw(ViewRootImpl.java:2526) 
                   at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2337) 
                   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1968) 
                   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054) 
                   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5786) 
                   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 
                   at android.view.Choreographer.doCallbacks(Choreographer.java:580) 
                   at android.view.Choreographer.doFrame(Choreographer.java:550) 
                   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 
                   at android.os.Handler.handleCallback(Handler.java:739) 
                   at android.os.Handler.dispatchMessage(Handler.java:95) 
                   at android.os.Looper.loop(Looper.java:135) 
                   at android.os.HandlerThread.run(HandlerThread.java:61) 
                   at com.android.server.ServiceThread.run(ServiceThread.java:46) 

答えて

0

はこれを試してみてください。 API で

System.runFinalization(); 
Runtime.getRuntime().gc(); 
System.gc(); 
+0

を使用することができますか?それはいつ実行されるべきですか?アプリケーションはグラデーションバックグラウンドxmlで即座に電話機をシャットダウンしています。 – computerjulian

+0

スプラッシュ画面のアクティビティ... setContentView()の後 –

関連する問題