Android Studio Получение имени учетной записи пользователя в Api Level> = 23? - PullRequest
0 голосов
/ 26 мая 2020

Я новичок в разработке Android приложений.

Я сделал приложение, которое хорошо работает на моем телефоне с Android Lollipop 5.1, и когда я устанавливаю apk на свой планшет с Android 7.0, оно вылетает при запуске. Кто-то сказал мне, что система разрешений в Android изменилась на Android 6 и выше.

Мое приложение вылетает при чтении имени учетной записи google.

Как мне мне нужно изменить свой код для получения google-Account-Name в Api-Level <23, а также в Api-Level> = 23?

Вот журнал и код.

Журнал:

    Process: com.example.myapp, PID: 288
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.MainActivity}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.accounts.Account.name' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2804)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2875)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1578)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:156)
        at android.app.ActivityThread.main(ActivityThread.java:6623)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)


     Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.accounts.Account.name' on a null object reference


        at com.example.myapp.MainActivity.onCreate(MainActivity.java:111)
        at android.app.Activity.performCreate(Activity.java:6910)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2757)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2875) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1578) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:156) 
        at android.app.ActivityThread.main(ActivityThread.java:6623) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 

Код:

        //---------------------------------------------------------
        // Google-Account Informations
        Context context = this;
        Account account = getAccount(AccountManager.get(context));
        String accountName = account.name;
        fullName = accountName.substring(0,accountName.lastIndexOf("@"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...