Я новичок в разработке 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("@"));