質問編集履歴

4 logcatを更新しました。Gradleを追記しました。

t_306

t_306 score 5

2017/03/31 23:22  投稿

AndroidのNotificationのステータスバーアイコンについて
###前提・実現したいこと
androidのステータスバーに表示するアイコンについての質問です。
API23以降ではNotificationの
.setSmallIcon(Icon icon)
と直接アイコンを指定できると公式には書いてあります。
そこでビットマップにテキストを書き込み、動的にアイコンに情報を
表示するようにしようとしています。
開発はAndroidStudioで行っておりますが、エミュレーターでは
問題なくアイコンが表示されますが、実機(Xperia Z5 Premium)
ではエラーが出ます。このソースでは簡略化してTSTと書き込んでいます。
どなたかエラーの原因がお分かりであればご教示願えませんでしょうか。
###発生している問題・エラーメッセージ
```
問題が発生したため[システムUI]を終了します
```
###該当のソースコード
```
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       //適当なビットマップを用意
       Bitmap bitmap = Bitmap.createBitmap(72, 72, Bitmap.Config.ARGB_8888);
   
    //TSTと書き込む
       Canvas canvas = new Canvas(bitmap);
       canvas.drawARGB(0, 0, 0, 0xFF);
       TextPaint textPaint = new TextPaint();
       textPaint.setAntiAlias(true);
       textPaint.setColor(Color.BLACK);
       textPaint.setFakeBoldText(true);
       textPaint.setTextSize(24);
       canvas.drawText("TST", 0, 72, textPaint);
       Icon icon;
       icon = Icon.createWithBitmap(bitmap); // 動的に描画した画像からアイコンを作成
       //  通知
       Notification ntf = new Notification.Builder(this)
                   .setContentTitle("test")
                   .setContentText("testtesttest")
                   .setSmallIcon(icon) // API23以降はIconも指定できるはず
          //.setSmallIcon(R.drawable.ic_stat_name) これは動きます
                   .setLargeIcon(bitmap)
                   .build();
       NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
       nm.notify(1, ntf);
   }
}
```
###試したこと
動的にIcon iconではなく従来の表示方法では適当に絵は出せます。
デバッガで動作を追ったところ最後の一行のnotifyでエラーが出ます。
公式を見ても.setSmallIcon(Icon icon)については特に注意事項も見当たらず手詰まりの状態です。
追記(2/28 16:37)
logcatのログです。実機はXperia C5 Ultra(android 6.0)を使いましたが現象は同じです。
追記1 (3/31 23:16)
logcatのログを更新しました。実機はXperia C5 Ultra(android 6.0)を使いましたが現象は同じです。
```
02-28 16:18:45.877 17789-17789/? I/art: Late-enabling -Xcheck:jni
02-28 16:18:45.910 17789-17798/? I/System: FinalizerDaemon: finalize objects = 1
02-28 16:18:45.923 17789-17789/com.example.t_oot.sbtest I/ActivityThread: Switching default density from 480 to 360
02-28 16:18:45.930 17789-17789/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 16:18:45.956 17789-17789/com.example.t_oot.sbtest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-28 16:18:46.038 17789-17789/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f81f62e60), client(39), share_fd(37)
02-28 16:18:46.071 17789-17809/com.example.t_oot.sbtest E/GED: Failed to get GED Log Buf, err(0)
02-28 16:18:46.072 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Initialized EGL, version 1.4
02-28 16:18:46.077 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Get enable program binary service property (1)
02-28 16:18:46.077 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Initializing program atlas...
02-28 16:18:46.082 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Program binary detail: Binary length is 146348, program map length is 128.
02-28 16:18:46.083 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 44, and path is /dev/ashmem�.
02-28 16:18:46.083 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: No need to use file discriptor anymore, close fd(44).
02-28 16:18:46.094 17789-17809/com.example.t_oot.sbtest W/libEGL: [ANDROID_RECORDABLE] format: 1
02-28 16:18:46.102 17789-17809/com.example.t_oot.sbtest I/PerfService: PerfServiceNative api init
02-28 16:18:46.109 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6af00), client(39), share_fd(46)
02-28 16:18:46.116 17789-17789/com.example.t_oot.sbtest I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@4d67f2a time:16108461
02-28 16:18:49.998 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6afa0), client(39), share_fd(49)
02-28 16:18:50.149 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6b040), client(39), share_fd(51)
02-28 16:18:50.160 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6a820), client(39), share_fd(53)
03-31 23:14:51.791 7743-7743/? I/art: Late-enabling -Xcheck:jni
03-31 23:14:51.843 7743-7743/com.example.t_oot.sbtest I/ActivityThread: Switching default density from 480 to 360
03-31 23:14:51.854 7743-7743/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-1/lib/arm64
03-31 23:14:51.975 7743-7743/com.example.t_oot.sbtest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
03-31 23:14:52.054 7743-7752/com.example.t_oot.sbtest I/System: FinalizerDaemon: finalize objects = 1
03-31 23:14:52.148 7743-7743/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7fa76378e0), client(39), share_fd(37)
03-31 23:14:52.200 7743-7784/com.example.t_oot.sbtest E/GED: Failed to get GED Log Buf, err(0)
03-31 23:14:52.200 7743-7784/com.example.t_oot.sbtest I/OpenGLRenderer: Initialized EGL, version 1.4
03-31 23:14:52.205 7743-7784/com.example.t_oot.sbtest I/OpenGLRenderer: Get enable program binary service property (1)
03-31 23:14:52.205 7743-7784/com.example.t_oot.sbtest I/OpenGLRenderer: Initializing program atlas...
03-31 23:14:52.206 7743-7784/com.example.t_oot.sbtest I/OpenGLRenderer: Program binary detail: Binary length is 146348, program map length is 128.
03-31 23:14:52.207 7743-7784/com.example.t_oot.sbtest I/OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 44, and path is /dev/ashmem�.
03-31 23:14:52.207 7743-7784/com.example.t_oot.sbtest I/OpenGLRenderer: No need to use file discriptor anymore, close fd(44).
03-31 23:14:52.213 7743-7784/com.example.t_oot.sbtest W/libEGL: [ANDROID_RECORDABLE] format: 1
03-31 23:14:52.225 7743-7784/com.example.t_oot.sbtest I/PerfService: PerfServiceNative api init
03-31 23:14:52.235 7743-7784/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7fb1c67c80), client(39), share_fd(46)
03-31 23:14:52.253 7743-7743/com.example.t_oot.sbtest I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@799da7c time:1133912660
```
追記2 (3/31 23:16)
Gradleの内容です。AndroidStudioで空のアプリを生成して内容はいじっていません。
```
apply plugin: 'com.android.application'
android {
   compileSdkVersion 25
   buildToolsVersion "25.0.2"
   defaultConfig {
       applicationId "com.example.t_oot.sbtest"
       minSdkVersion 23
       targetSdkVersion 25
       versionCode 1
       versionName "1.0"
       testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
       release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
   }
}
dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
       exclude group: 'com.android.support', module: 'support-annotations'
   })
   compile 'com.android.support:appcompat-v7:25.3.1'
   testCompile 'junit:junit:4.12'
}
```
  • Android

    8086 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

3 エラーログをコード用に変更

t_306

t_306 score 5

2017/02/28 16:38  投稿

AndroidのNotificationのステータスバーアイコンについて
###前提・実現したいこと
androidのステータスバーに表示するアイコンについての質問です。
API23以降ではNotificationの
.setSmallIcon(Icon icon)
と直接アイコンを指定できると公式には書いてあります。
そこでビットマップにテキストを書き込み、動的にアイコンに情報を
表示するようにしようとしています。
開発はAndroidStudioで行っておりますが、エミュレーターでは
問題なくアイコンが表示されますが、実機(Xperia Z5 Premium)
ではエラーが出ます。このソースでは簡略化してTSTと書き込んでいます。
どなたかエラーの原因がお分かりであればご教示願えませんでしょうか。
###発生している問題・エラーメッセージ
```
問題が発生したため[システムUI]を終了します
```
###該当のソースコード
```
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       //適当なビットマップを用意
       Bitmap bitmap = Bitmap.createBitmap(72, 72, Bitmap.Config.ARGB_8888);
   
    //TSTと書き込む
       Canvas canvas = new Canvas(bitmap);
       canvas.drawARGB(0, 0, 0, 0xFF);
       TextPaint textPaint = new TextPaint();
       textPaint.setAntiAlias(true);
       textPaint.setColor(Color.BLACK);
       textPaint.setFakeBoldText(true);
       textPaint.setTextSize(24);
       canvas.drawText("TST", 0, 72, textPaint);
       Icon icon;
       icon = Icon.createWithBitmap(bitmap); // 動的に描画した画像からアイコンを作成
       //  通知
       Notification ntf = new Notification.Builder(this)
                   .setContentTitle("test")
                   .setContentText("testtesttest")
                   .setSmallIcon(icon) // API23以降はIconも指定できるはず
          //.setSmallIcon(R.drawable.ic_stat_name) これは動きます
                   .setLargeIcon(bitmap)
                   .build();
       NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
       nm.notify(1, ntf);
   }
}
```
###試したこと
動的にIcon iconではなく従来の表示方法では適当に絵は出せます。
デバッガで動作を追ったところ最後の一行のnotifyでエラーが出ます。
公式を見ても.setSmallIcon(Icon icon)については特に注意事項も見当たらず手詰まりの状態です。
追記(2/28 15:27)
logcatのログです。実機はXperia C5 Ultraを使いましたが現象は同じです。
追記(2/28 16:37)
logcatのログです。実機はXperia C5 Ultra(android 6.0)を使いましたが現象は同じです。
```
02-28 16:18:45.877 17789-17789/? I/art: Late-enabling -Xcheck:jni
02-28 16:18:45.910 17789-17798/? I/System: FinalizerDaemon: finalize objects = 1
02-28 16:18:45.923 17789-17789/com.example.t_oot.sbtest I/ActivityThread: Switching default density from 480 to 360
02-28 16:18:45.930 17789-17789/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 16:18:45.956 17789-17789/com.example.t_oot.sbtest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-28 16:18:46.038 17789-17789/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f81f62e60), client(39), share_fd(37)
02-28 16:18:46.071 17789-17809/com.example.t_oot.sbtest E/GED: Failed to get GED Log Buf, err(0)
02-28 16:18:46.072 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Initialized EGL, version 1.4
02-28 16:18:46.077 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Get enable program binary service property (1)
02-28 16:18:46.077 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Initializing program atlas...
02-28 16:18:46.082 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Program binary detail: Binary length is 146348, program map length is 128.
02-28 16:18:46.083 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 44, and path is /dev/ashmem�.
02-28 16:18:46.083 17789-17809/com.example.t_oot.sbtest I/OpenGLRenderer: No need to use file discriptor anymore, close fd(44).
02-28 16:18:46.094 17789-17809/com.example.t_oot.sbtest W/libEGL: [ANDROID_RECORDABLE] format: 1
02-28 16:18:46.102 17789-17809/com.example.t_oot.sbtest I/PerfService: PerfServiceNative api init
02-28 16:18:46.109 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6af00), client(39), share_fd(46)
02-28 16:18:46.116 17789-17789/com.example.t_oot.sbtest I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@4d67f2a time:16108461
02-28 16:18:49.998 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6afa0), client(39), share_fd(49)
02-28 16:18:50.149 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6b040), client(39), share_fd(51)
02-28 16:18:50.160 17789-17809/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f83a6a820), client(39), share_fd(53)
02-28 15:20:33.641 31112-31112/? I/art: Late-enabling -Xcheck:jni
02-28 15:20:33.670 31112-31112/com.example.t_oot.sbtest I/ActivityThread: Switching default density from 480 to 360
02-28 15:20:33.674 31112-31112/com.example.t_oot.sbtest W/ActivityThread: Application com.example.t_oot.sbtest is waiting for the debugger on port 8100...
02-28 15:20:33.674 31112-31112/com.example.t_oot.sbtest I/System.out: Sending WAIT chunk
02-28 15:20:33.883 31112-31118/com.example.t_oot.sbtest I/art: Debugger is active
02-28 15:20:34.075 31112-31112/com.example.t_oot.sbtest I/System.out: Debugger has connected
02-28 15:20:34.075 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.275 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.475 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.675 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.875 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.075 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.276 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.476 31112-31112/com.example.t_oot.sbtest I/System.out: debugger has settled (1393)
02-28 15:20:35.481 31112-31112/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 15:20:35.485 31112-31112/com.example.t_oot.sbtest I/InstantRun: Instant Run Runtime started. Android package is com.example.t_oot.sbtest, real application class is null.
02-28 15:20:35.544 31112-31112/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 15:20:35.721 31112-31112/com.example.t_oot.sbtest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-28 15:20:35.780 31112-31121/com.example.t_oot.sbtest I/System: FinalizerDaemon: finalize objects = 1
02-28 15:20:35.905 31112-31112/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f73048dc0), client(41), share_fd(39)
                                                                         
                                                                          --------- beginning of crash
02-28 15:20:35.969 31112-31168/com.example.t_oot.sbtest E/GED: Failed to get GED Log Buf, err(0)
02-28 15:20:35.970 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Initialized EGL, version 1.4
02-28 15:20:35.975 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Get enable program binary service property (1)
02-28 15:20:35.975 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Initializing program atlas...
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Program binary detail: Binary length is 146348, program map length is 128.
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 46, and path is /dev/ashmems.
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: No need to use file discriptor anymore, close fd(46).
02-28 15:20:35.985 31112-31168/com.example.t_oot.sbtest W/libEGL: [ANDROID_RECORDABLE] format: 1
02-28 15:20:36.024 31112-31168/com.example.t_oot.sbtest I/PerfService: PerfServiceNative api init
02-28 15:20:36.031 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c280), client(41), share_fd(48)
02-28 15:20:36.044 31112-31112/com.example.t_oot.sbtest I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@603e4ab time:12618389
02-28 15:20:52.548 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c320), client(41), share_fd(51)
02-28 15:20:52.720 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c3c0), client(41), share_fd(53)
02-28 15:20:52.732 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c500), client(41), share_fd(55)
```
  • Android

    8086 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

2 logcatの実機を追記

t_306

t_306 score 5

2017/02/28 15:36  投稿

AndroidのNotificationのステータスバーアイコンについて
###前提・実現したいこと
androidのステータスバーに表示するアイコンについての質問です。
API23以降ではNotificationの
.setSmallIcon(Icon icon)
と直接アイコンを指定できると公式には書いてあります。
そこでビットマップにテキストを書き込み、動的にアイコンに情報を
表示するようにしようとしています。
開発はAndroidStudioで行っておりますが、エミュレーターでは
問題なくアイコンが表示されますが、実機(Xperia Z5 Premium)
ではエラーが出ます。このソースでは簡略化してTSTと書き込んでいます。
どなたかエラーの原因がお分かりであればご教示願えませんでしょうか。
###発生している問題・エラーメッセージ
```
問題が発生したため[システムUI]を終了します
```
###該当のソースコード
```
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       //適当なビットマップを用意
       Bitmap bitmap = Bitmap.createBitmap(72, 72, Bitmap.Config.ARGB_8888);
   
    //TSTと書き込む
       Canvas canvas = new Canvas(bitmap);
       canvas.drawARGB(0, 0, 0, 0xFF);
       TextPaint textPaint = new TextPaint();
       textPaint.setAntiAlias(true);
       textPaint.setColor(Color.BLACK);
       textPaint.setFakeBoldText(true);
       textPaint.setTextSize(24);
       canvas.drawText("TST", 0, 72, textPaint);
       Icon icon;
       icon = Icon.createWithBitmap(bitmap); // 動的に描画した画像からアイコンを作成
       //  通知
       Notification ntf = new Notification.Builder(this)
                   .setContentTitle("test")
                   .setContentText("testtesttest")
                   .setSmallIcon(icon) // API23以降はIconも指定できるはず
          //.setSmallIcon(R.drawable.ic_stat_name) これは動きます
                   .setLargeIcon(bitmap)
                   .build();
       NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
       nm.notify(1, ntf);
   }
}
```
###試したこと
動的にIcon iconではなく従来の表示方法では適当に絵は出せます。
デバッガで動作を追ったところ最後の一行のnotifyでエラーが出ます。
公式を見ても.setSmallIcon(Icon icon)については特に注意事項も見当たらず手詰まりの状態です。
追記(2/28 15:27)
logcatのログです。
logcatのログです。実機はXperia C5 Ultraを使いましたが現象は同じです。
02-28 15:20:33.641 31112-31112/? I/art: Late-enabling -Xcheck:jni
02-28 15:20:33.670 31112-31112/com.example.t_oot.sbtest I/ActivityThread: Switching default density from 480 to 360
02-28 15:20:33.674 31112-31112/com.example.t_oot.sbtest W/ActivityThread: Application com.example.t_oot.sbtest is waiting for the debugger on port 8100...
02-28 15:20:33.674 31112-31112/com.example.t_oot.sbtest I/System.out: Sending WAIT chunk
02-28 15:20:33.883 31112-31118/com.example.t_oot.sbtest I/art: Debugger is active
02-28 15:20:34.075 31112-31112/com.example.t_oot.sbtest I/System.out: Debugger has connected
02-28 15:20:34.075 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.275 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.475 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.675 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.875 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.075 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.276 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.476 31112-31112/com.example.t_oot.sbtest I/System.out: debugger has settled (1393)
02-28 15:20:35.481 31112-31112/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 15:20:35.485 31112-31112/com.example.t_oot.sbtest I/InstantRun: Instant Run Runtime started. Android package is com.example.t_oot.sbtest, real application class is null.
02-28 15:20:35.544 31112-31112/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 15:20:35.721 31112-31112/com.example.t_oot.sbtest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-28 15:20:35.780 31112-31121/com.example.t_oot.sbtest I/System: FinalizerDaemon: finalize objects = 1
02-28 15:20:35.905 31112-31112/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f73048dc0), client(41), share_fd(39)
                                                                         
                                                                          --------- beginning of crash
02-28 15:20:35.969 31112-31168/com.example.t_oot.sbtest E/GED: Failed to get GED Log Buf, err(0)
02-28 15:20:35.970 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Initialized EGL, version 1.4
02-28 15:20:35.975 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Get enable program binary service property (1)
02-28 15:20:35.975 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Initializing program atlas...
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Program binary detail: Binary length is 146348, program map length is 128.
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 46, and path is /dev/ashmems.
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: No need to use file discriptor anymore, close fd(46).
02-28 15:20:35.985 31112-31168/com.example.t_oot.sbtest W/libEGL: [ANDROID_RECORDABLE] format: 1
02-28 15:20:36.024 31112-31168/com.example.t_oot.sbtest I/PerfService: PerfServiceNative api init
02-28 15:20:36.031 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c280), client(41), share_fd(48)
02-28 15:20:36.044 31112-31112/com.example.t_oot.sbtest I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@603e4ab time:12618389
02-28 15:20:52.548 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c320), client(41), share_fd(51)
02-28 15:20:52.720 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c3c0), client(41), share_fd(53)
02-28 15:20:52.732 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c500), client(41), share_fd(55)
  • Android

    8086 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1 logcatのログを追記しました

t_306

t_306 score 5

2017/02/28 15:28  投稿

AndroidのNotificationのステータスバーアイコンについて
###前提・実現したいこと
androidのステータスバーに表示するアイコンについての質問です。
API23以降ではNotificationの
.setSmallIcon(Icon icon)
と直接アイコンを指定できると公式には書いてあります。
そこでビットマップにテキストを書き込み、動的にアイコンに情報を
表示するようにしようとしています。
開発はAndroidStudioで行っておりますが、エミュレーターでは
問題なくアイコンが表示されますが、実機(Xperia Z5 Premium)
ではエラーが出ます。このソースでは簡略化してTSTと書き込んでいます。
どなたかエラーの原因がお分かりであればご教示願えませんでしょうか。
###発生している問題・エラーメッセージ
```
問題が発生したため[システムUI]を終了します
```
###該当のソースコード
```
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       //適当なビットマップを用意
       Bitmap bitmap = Bitmap.createBitmap(72, 72, Bitmap.Config.ARGB_8888);
   
    //TSTと書き込む
       Canvas canvas = new Canvas(bitmap);
       canvas.drawARGB(0, 0, 0, 0xFF);
       TextPaint textPaint = new TextPaint();
       textPaint.setAntiAlias(true);
       textPaint.setColor(Color.BLACK);
       textPaint.setFakeBoldText(true);
       textPaint.setTextSize(24);
       canvas.drawText("TST", 0, 72, textPaint);
       Icon icon;
       icon = Icon.createWithBitmap(bitmap); // 動的に描画した画像からアイコンを作成
       //  通知
       Notification ntf = new Notification.Builder(this)
                   .setContentTitle("test")
                   .setContentText("testtesttest")
                   .setSmallIcon(icon) // API23以降はIconも指定できるはず
          //.setSmallIcon(R.drawable.ic_stat_name) これは動きます
                   .setLargeIcon(bitmap)
                   .build();
       NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
       nm.notify(1, ntf);
   }
}
```
###試したこと
動的にIcon iconではなく従来の表示方法では適当に絵は出せます。
デバッガで動作を追ったところ最後の一行のnotifyでエラーが出ます。
公式を見ても.setSmallIcon(Icon icon)については特に注意事項も見当たらず手詰まりの状態です。
公式を見ても.setSmallIcon(Icon icon)については特に注意事項も見当たらず手詰まりの状態です。
追記(2/28 15:27)
logcatのログです。
02-28 15:20:33.641 31112-31112/? I/art: Late-enabling -Xcheck:jni
02-28 15:20:33.670 31112-31112/com.example.t_oot.sbtest I/ActivityThread: Switching default density from 480 to 360
02-28 15:20:33.674 31112-31112/com.example.t_oot.sbtest W/ActivityThread: Application com.example.t_oot.sbtest is waiting for the debugger on port 8100...
02-28 15:20:33.674 31112-31112/com.example.t_oot.sbtest I/System.out: Sending WAIT chunk
02-28 15:20:33.883 31112-31118/com.example.t_oot.sbtest I/art: Debugger is active
02-28 15:20:34.075 31112-31112/com.example.t_oot.sbtest I/System.out: Debugger has connected
02-28 15:20:34.075 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.275 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.475 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.675 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:34.875 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.075 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.276 31112-31112/com.example.t_oot.sbtest I/System.out: waiting for debugger to settle...
02-28 15:20:35.476 31112-31112/com.example.t_oot.sbtest I/System.out: debugger has settled (1393)
02-28 15:20:35.481 31112-31112/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 15:20:35.485 31112-31112/com.example.t_oot.sbtest I/InstantRun: Instant Run Runtime started. Android package is com.example.t_oot.sbtest, real application class is null.
02-28 15:20:35.544 31112-31112/com.example.t_oot.sbtest W/System: ClassLoader referenced unknown path: /data/app/com.example.t_oot.sbtest-2/lib/arm64
02-28 15:20:35.721 31112-31112/com.example.t_oot.sbtest W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-28 15:20:35.780 31112-31121/com.example.t_oot.sbtest I/System: FinalizerDaemon: finalize objects = 1
02-28 15:20:35.905 31112-31112/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f73048dc0), client(41), share_fd(39)
                                                                         
                                                                          --------- beginning of crash
02-28 15:20:35.969 31112-31168/com.example.t_oot.sbtest E/GED: Failed to get GED Log Buf, err(0)
02-28 15:20:35.970 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Initialized EGL, version 1.4
02-28 15:20:35.975 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Get enable program binary service property (1)
02-28 15:20:35.975 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Initializing program atlas...
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Program binary detail: Binary length is 146348, program map length is 128.
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 46, and path is /dev/ashmems.
02-28 15:20:35.977 31112-31168/com.example.t_oot.sbtest I/OpenGLRenderer: No need to use file discriptor anymore, close fd(46).
02-28 15:20:35.985 31112-31168/com.example.t_oot.sbtest W/libEGL: [ANDROID_RECORDABLE] format: 1
02-28 15:20:36.024 31112-31168/com.example.t_oot.sbtest I/PerfService: PerfServiceNative api init
02-28 15:20:36.031 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c280), client(41), share_fd(48)
02-28 15:20:36.044 31112-31112/com.example.t_oot.sbtest I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@603e4ab time:12618389
02-28 15:20:52.548 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c320), client(41), share_fd(51)
02-28 15:20:52.720 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c3c0), client(41), share_fd(53)
02-28 15:20:52.732 31112-31168/com.example.t_oot.sbtest I/[MALI][Gralloc]: [+]r_hnd(0x7f6ff5c500), client(41), share_fd(55)
  • Android

    8086 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る