尝试在 nul 对象引用上调用虚拟方法 'android.content.ContentResolverr android.id.content.Context.getContentesolver()
Posted
技术标签:
【中文标题】尝试在 nul 对象引用上调用虚拟方法 \'android.content.ContentResolverr android.id.content.Context.getContentesolver()\'【英文标题】:Attempt to invoke virtual method 'android.content.ContentResolverr android.id.content.Context.getContentesolver()' on a nul object reference尝试在 nul 对象引用上调用虚拟方法 'android.content.ContentResolverr android.id.content.Context.getContentesolver()' 【发布时间】:2020-06-14 13:10:44 【问题描述】:我在我的应用程序中使用 Telr SDK,同时使用它会显示上下文空指针,除非我使用了 Volley 库并在由“应用程序”类扩展的类中编写了一些方法。它一次又一次地向我显示此错误,因为我使用了由“Application”类扩展的“APPController”类并将其注册在“Applicaion”标签下的 Manifest 中。如果我在我的项目中不使用“Appcontroller”类,那么 Telr 网关可以完美运行,但我需要同时使用两者,请帮忙。
代码:
AppController.java:
public class AppController extends Application
public static final String TAG = AppController.class
.getSimpleName();
private RequestQueue mRequestQueue;
private static AppController mInstance;
@Override
public void onCreate()
super.onCreate();
FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/Rubik-Regular.ttf");
FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/Rubik-Regular.ttf");
FontsOverride.setDefaultFont(this, "SERIF", "fonts/Rubik-Regular.ttf");
FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/Rubik-Regular.ttf");
mInstance = this;
public static synchronized AppController getInstance()
return mInstance;
public RequestQueue getRequestQueue()
if (mRequestQueue == null)
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
return mRequestQueue;
public <T> void addToRequestQueue(Request<T> req, String tag)
// set the default tag if tag is empty
req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
getRequestQueue().add(req);
public <T> void addToRequestQueue(Request<T> req)
req.setTag(TAG);
getRequestQueue().add(req);
public void cancelPendingRequests(Object tag)
if (mRequestQueue != null)
mRequestQueue.cancelAll(tag);
Telr.java:
public void sendMessage()
Intent intent = new Intent(Demo.this, WebviewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.putExtra(WebviewActivity.EXTRA_MESSAGE, getMobileRequest());
intent.putExtra(WebviewActivity.SUCCESS_ACTIVTY_CLASS_NAME, "com.marketplace.activity.SuccessTransationActivity");
intent.putExtra(WebviewActivity.FAILED_ACTIVTY_CLASS_NAME, "com.marketplace.activity.FailedTransationActivity");
intent.putExtra(WebviewActivity.IS_SECURITY_ENABLED, isSecurityEnabled);
startActivity(intent);
我收到错误:Intent intent = new Intent(Demo.this, WebviewActivity.class);
Manifest.xml:
<application
android:name="com.marketplace.utils.AppController"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/app_icon_rect"
android:label="@string/app_name"
android:roundIcon="@mipmap/app_icon_circle"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:theme, android:name"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
【问题讨论】:
【参考方案1】:对于那些仍然有这个问题的人,你可以通过创建一个应用程序类来解决这个问题,如果你还没有一个应用程序类,然后用 Telr Application 扩展你的应用程序类,就是这样,它会解决你的问题。
public class MyApp extends TelrApplication
public void onCreate()
super.onCreate();
【讨论】:
以上是关于尝试在 nul 对象引用上调用虚拟方法 'android.content.ContentResolverr android.id.content.Context.getContentesolver()的主要内容,如果未能解决你的问题,请参考以下文章
致命异常: main ,尝试在空对象引用上调用虚拟方法 [重复]
尝试在空对象引用上调用虚拟方法 com.google.firebase.iid.FirebaseInstanceId.getInstanceId()'
NullPointerException 错误尝试在空对象引用上调用虚拟方法错误