2012-01-02 11 views
3

私はAndroidでライブ壁紙を作成しようとしています。これは、資産のディレクトリに配置された税関文字列で、以下の方法でそれに描かれたテキストを持っていますAndroidライブ壁紙がカスタムフォントのためにクラッシュする

String path = "fonts/calligraffiti.ttf"; 
AssetManager a1 = getApplicationContext().getAssets(); 
Typeface typef = Typeface.createFromAsset(a1, path); 
mp1.setTypeface(typef); 

MP1がここにペイントです。 が、これは次のようにある描画、これは毎秒更新されます。後に続いて[6つのエントリ]フォントキャッシュから41Kをパージ、および同様のもの :

c.drawText(Integer.toString(t.get(Calendar.HOUR)), wt/2-5*wt/100, ht/2+sec*60+ht/15, mp1); 

私はLogcatに以下を参照してください。数秒ごとに

01-02 13:31:59.344: I/ActivityManager(1319): Process ca.jvsh.livewallpaper (pid 3444) has died. 
01-02 13:31:59.375: W/WallpaperService(1319): Wallpaper service gone: ComponentInfo{ca.jvsh.livewallpaper/ca.jvsh.livewallpaper.LiveWallpaper} 
01-02 13:31:59.383: I/WindowManager(1319): WIN DEATH: Window{457c0628 ca.jvsh.livewallpaper.LiveWallpaper paused=false} 
01-02 13:31:59.391: W/ActivityManager(1319): Scheduling restart of crashed service ca.jvsh.livewallpaper/.LiveWallpaper in 5000ms 
01-02 13:31:59.508: I/ActivityManager(1319): Low Memory: No more background processes. 

これは確かにカスタムフォントの使用に起因しています。私が使用する任意のカスタムフォント、同じことが起こり、カスタムフォントがなくてもすべて正常に動作しています。

私のカスタムフォントを使用してライブ壁紙サービスをクラッシュさせることはできますか?

ありがとうございました!

答えて

0

ライブウォールペーパーアプリでも同様の問題がありました。私は自分のOpenGLテクスチャに問題を追加するのかどうか疑問に思った。最後に、Android OSに必要な場合にいつでもメモリからアプリケーションをクリアし、AlarmManagerを使用した回復プロセスを追加したということだけを述べた。

いくつかの参照:

https://stackoverflow.com/a/14748123/3540391

https://stackoverflow.com/a/8321512/3540391

関連する問題