Search code examples
androidandroid-7.0-nougatandroid-7.1-nougat

App doesn't open in Nougat


I'm programming a new app and I was trying with different versions. When I try in Nougat, my app doesn't open. It just says:

app has stopped. Open app again?

If I press open again, the app keeps stopping.

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"  


    defaultConfig {       
        minSdkVersion 11
        targetSdkVersion 25
        versionCode 1
        versionName "2.0"
        multiDexEnabled true
    }
}

I tried with buildToolsVersion "25.0.1" and nope. Any help?

Here is my logcat trace when I try to open it in a Nougat device

05-10 09:49:35.119 4709-4709/app E/app: /storage/emulated/0/app/Registros/grupo-registros.csv (No such file or directory)
                                                   java.io.FileNotFoundException: /storage/emulated/0/app/Registros/grupo(demo)-registros.csv (No such file or directory)
                                                       at java.io.FileOutputStream.open(Native Method)
                                                       at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
                                                       at java.io.FileOutputStream.<init>(FileOutputStream.java:140)
                                                       at app.MainActivity.onCreate(MainActivity.java:175)
                                                       at android.app.Activity.performCreate(Activity.java:6679)
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:154)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
 05-10 09:49:35.148 4709-4709/app D/AndroidRuntime: Shutting down VM
 05-10 09:49:35.148 4709-4709/app E/AndroidRuntime: FATAL EXCEPTION: main
                                                          Process: app, PID: 4709
                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{es/app.MainActivity}: java.util.EmptyStackException
                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                              at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                              at android.os.Looper.loop(Looper.java:154)
                                                              at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                           Caused by: java.util.EmptyStackException
                                                              at app.MainActivity.copyFileOrDir(MainActivity.java:434)
                                                              at app.MainActivity.addSubjectDemo(MainActivity.java:341)
                                                              at app.MainActivity.onCreate(MainActivity.java:231)
                                                              at android.app.Activity.performCreate(Activity.java:6679)
                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                                                              at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                              at android.os.Looper.loop(Looper.java:154) 
                                                              at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

EDIT: my manifest´s permission request

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />

Solution

  • java.io.FileNotFoundException:/storage/emulated/0/app/Registros/grupo(demo)-registros.csv (No such file or directory)
    

    That happens probably because in Nougat-Android 7.0 there are changes to permissions that may affect your app. It is not enforced, but it pops exception which you probably don't handle. You should read the documentation:

    https://developer.android.com/about/versions/nougat/android-7.0-changes.html

    And check this answers

    Android 7.1 Write to text file