Android Studio,兼容性问题?(Android > 10)

pkwftd7m  于 2023-08-07  发布在  Android
关注(0)|答案(1)|浏览(124)

新的一天,新的问题。
我会尽量把我的问题解释清楚。
我在Android 10(API 29)上测试了我的应用程序,一切正常。
我正在Android 13(API 33)上测试同一个应用,在应用的不同页面之间转换时遇到问题。
我的应用程序启动良好,我设法登录(有一个登录系统),我到达“家”。
当我在应用程序中点击导航时,它崩溃了。

java.lang.RuntimeException: Unable to start activity ComponentInfo (...) 
Attempt to invoke virtual method 'java.lang.Integer fr.xxx.yyy.models.Configuration.Societe.getIdSociete()' on a null object reference

字符串
问题行:

String IdSociete = AppConfig.getInstance().company.getIdSociete().toString();


为了解释,在用户登录后,我检索JSON信息,包括一些关于公司的信息,并将其存储在模型中。
登录后,我直接显示IdSociete值,以确保它确实被存储。
在此位置(登录后):是的!
我的问题是:为什么当我想以同样的方式,在代码的另一个地方,检索相同的值时,它找不到引用?
为什么我只在Android版本> 10上有这个问题?
感谢您的帮助:)

r6vfmomb

r6vfmomb1#

好吧,我解决了我的问题!
我之前的代码:

Intent intent = new Intent(mContext, GeofenceTransitionsIntentService.class);
mGeofencePendingIntent = PendingIntent.getService(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

字符串
FLAG_UPDATE_CURRENT是Android 12+的问题
我是这样解决我的问题的:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
     mGeofencePendingIntent = PendingIntent.getService(mContext, 0, intent, PendingIntent.FLAG_MUTABLE);
}
else{
     mGeofencePendingIntent = PendingIntent.getService(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}

相关问题