Showing posts with label Android 8.0 error. Show all posts
Showing posts with label Android 8.0 error. Show all posts

android DeadSystemException

Found this crash log on Crashlytics with first time on Android 8.0 Samsung device.
# OS Version: 8.0.0
# Device: SM-A605G
Fatal Exception: java.lang.RuntimeException: android.os.DeadSystemException
       at android.app.ActivityThread.handleSleeping(ActivityThread.java:4405)
       at android.app.ActivityThread.-wrap23(Unknown Source)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6944)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Caused by android.os.DeadSystemException
       at android.app.ActivityThread.handleSleeping(ActivityThread.java:4405)
       at android.app.ActivityThread.-wrap23(Unknown Source)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6944)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

#0. Crashed: main
       at android.app.ActivityThread.handleSleeping(ActivityThread.java:4405)
       at android.app.ActivityThread.-wrap23(Unknown Source)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6944)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

#1. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2135)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
       at java.lang.Thread.run(Thread.java:764)

#2. AdWorker(Default) #8
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2135)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:459)
       at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
       at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:920)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
       at java.lang.Thread.run(Thread.java:764)

#3. Loader:ExtractorSampleSource
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2135)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
       at java.lang.Thread.run(Thread.java:764)

#4. fifo-pool-thread-5
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2135)
       at sun.misc.Unsafe.park(Unsafe.java:358)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
       at java.lang.Thread.run(Thread.java:764)
       at com.bumptech.glide.load.engine.executor.FifoPriorityThreadPoolExecutor$DefaultThreadFactory$1.run(FifoPriorityThreadPoolExecutor.java:118)

android 8.0 only fullscreen opaque activities can request orientation

08-29 16:46:32.282 17040-17040/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.demo.androidAppdemo, PID: 17040
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo.androidAppdemo/com.example.demo.androidAppdemo.Modules.FireBase.NotificationActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
        at android.app.ActivityThread.-wrap12(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
        at android.os.Handler.dispatchMessage(Handler.java:108)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7425)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
     Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
        at android.app.Activity.onCreate(Activity.java:1081)
        at android.support.v4.app.SupportActivity.onCreate(SupportActivity.java:66)
        at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:321)
        at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
        at com.example.demo.androidAppdemo.BaseActivity.onCreate(BaseActivity.java:93)
        at com.example.demo.androidAppdemo.Modules.FireBase.NotificationActivity.onCreate(NotificationActivity.java:87)
        at android.app.Activity.performCreate(Activity.java:7372)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)
        at android.app.ActivityThread.-wrap12(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)
        at android.os.Handler.dispatchMessage(Handler.java:108)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7425)
        at java.lang.reflect.Method.invoke(Native Method)
android.app.ActivityThread.main (ActivityThread.java:7425)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
I used MainActivity to list notifications in Fragment and if a notification is clicked then the full screen transparent NotificationActivity opens with image and detail. I found crash on Android Oreo Honor device while opening NotificaionActivity.
<activity
            android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppThemeHome"/>
        <activity

<activity
            android:name=".Modules.NotificationActivity"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.Translucent"/>
Also, setting screen-orientation parameter programmatically in transparent activity not worked.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
if an Activity is fullscreen translucent activity. there is no need to set the screen orientation lock. Screen orientation of translucent or floating activity is relied on background Activity().
You Need to make changes to your AndroidManifest.xml file
Either set the screen-orientation parameter of the NotificationActivity to "unspecified" or remove the screen-orientation parameter then it worked for me. Application not crashing and Transparent Activity(NotificationActivity) maintaining the portrait mode despite the auto-rotate on all devices (I have tested this on HTC(Android-4.3.4), Mi note 3 (Android-M) and Honour device(Android 8.0)).
<activity
            android:name=".Modules.NotificationActivity"
            android:screenOrientation="unspecified"
            android:theme="@style/Theme.AppCompat.Translucent"/>
After the above change to NotificationActivity. It's transparent and full screen. 

Android 8.0:java.lang.IllegalStateException:Not allowed to start service Intent

java.lang.RuntimeException: Unable to start receiver com.myapp.alarm.AlarmReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com..myapp/.alarm.AlarmSchedulingService (has extras) }: app is in background uid UidRecord{6603235 u0a81 RCVR bg:+2m0s921ms idle change:uncached procs:1 seq(0,0,0)}
IntentService is a service with more Background Execution Limits targeting Android 8.0 and higher. Android Oreo background services has introduces new Background Service Limitations. Many apps with Android Oreo that uses IntentService do not work properly.
So, to implement the same background service functionality for Android Oreo we go with JobIntentService. JobIntentService class introduces in Android Support Library 26.1.0, has same functionality as IntentService. JobIntentService when running on Android oreo and higher versions uses jobs instead of services.
For more visit Background Execution Limits

Below is the implementation of Android 8.0 JobIntentService instead of InentService example and how to use it.
# Use AlarmSchedulingService(JobIntentService class) in class AlarmManager which extends WakefulBroadcastReceiver
Intent intent= new Intent(context, AlarmSchedulingService.class);

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
 enqueueWork(context, AlarmSchedulingService.class, JOB_ID, intent);
}else{
startWakefulService(context, intent);
}

# AlarmSchedulingService.java (JobIntentService class)
//Implementation of a JobIntentService Example.
public class AlarmSchedulingService extends JobIntentService {
    //Unique job ID
    static final int JOB_ID = 1000;

    //a method to enqueue work in to this service.
    static void enqueueWork(Context context, Intent work) {
        enqueueWork(context, AlarmSchedulingService .class, JOB_ID, work);
    }

    //Handles the intent
    @Override
    protected void onHandleWork(Intent intent) {
       // We have received work to do.
       // The system already holding a wake lock at this point.
// your task code  (or function call)
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}


#Old Intent service code for Android version lower than Oreo
public class AlarmSchedulingService extends IntentService {

public AlarmSchedulingService() {
        super("AlarmSchedulingService");
    }

@Override
    protected void onHandleIntent(Intent intent) {
// your task code  (or function call)
    } }

#Use AlarmSchedulingService in class AlarmManager which extends WakefulBroadcastReceiver
Intent service = new Intent(context, AlarmSchedulingService.class);
startWakefulService(context, service);

Popular Posts