如何使用android studio修复上传图像中的致命异常java.lang.NullPointerException?

如何使用android studio修复上传图像中的致命异常java.lang.NullPointerException?,android,json,image,android-volley,Android,Json,Image,Android Volley,我被困在这里了。问题是我必须用截击来保存数据。如何保存它,程序总是强制关闭。保存时,“intaniryanti.golenv1t E/AndroidRuntime:致命异常:主 流程:com.intaniryanti.golenv1t,PID: java.lang.NullPointerException:尝试调用虚拟方法“void” com.intaniryanti.golearnv1t.app.AppController.addToRequestQueue(com.android.volle

我被困在这里了。问题是我必须用截击来保存数据。如何保存它,程序总是强制关闭。保存时,“intaniryanti.golenv1t

E/AndroidRuntime:致命异常:主
流程:com.intaniryanti.golenv1t,PID:
java.lang.NullPointerException:尝试调用虚拟方法“void” com.intaniryanti.golearnv1t.app.AppController.addToRequestQueue(com.android.volley.Request, java.lang.String)“”在 com.intaniryanti.golearnv1t.ProfileActivity.uploadImage(ProfileActivity.java:at com.intaniryanti.golearnv1t.ProfileActivity.access$100(ProfileActivity.java: 在 com.intaniryanti.golearnv1t.ProfileActivity$2.onClick(ProfileActivity.java: 在android.view.view.performClick(view.java:
在android.view.view$PerformClick.run(view.java:
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)

“这是我在AndroidManifest.xml中的代码。我不想用以下代码显示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.intaniryanti.golearnv1t">

    <!--
         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
         Google Maps Android API v2, but you must specify either coarse or fine
         location permissions for the 'MyLocation' functionality. 
    -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".app.AppController"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <!--
             The API key for Google Maps-based APIs is defined as a string resource.
             (See the file "res/values/google_maps_api.xml").
             Note that the API key is linked to the encryption key used to sign the APK.
             You need a different API key for each encryption key, including the release key that is used to
             sign the APK for publishing.
             You can define the keys for the debug and release targets in src/debug/ and src/release/. 
        -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".SplashActivity"
            android:label="@string/app_name"
            android:noHistory="true"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MapsActivity"
            android:label="@string/app_name" />
        <activity android:name=".HomeActivity" />
        <activity android:name=".LoginActivity" />
        <activity android:name=".MainActivity" />
        <activity android:name=".Main2Activity" />
        <activity android:name=".CatchIMEI" />
        <activity android:name=".PermintaanActivity" />
        <activity
            android:name=".PesananActivity"
            android:label="@string/title_activity_pesanan"
            android:parentActivityName=".HomeActivity" />
        <activity
            android:name=".RatingActivity"
            android:label="@string/title_activity_rating"
            android:parentActivityName=".HomeActivity" />
        <activity
            android:name=".LayananActivity"
            android:label="@string/title_activity_layanan"
            android:parentActivityName=".HomeActivity"></activity>
        <activity android:name=".ProfileActivity"></activity>
    </application>

</manifest>
软件包app->AppController.java

package com.intaniryanti.golearnv1t.app;

import android.app.Application;
import android.text.TextUtils;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

import com.intaniryanti.golearnv1t.volley.LruBitmapCache;

public class AppController extends Application {

    public static final String TAG = AppController.class.getSimpleName();

    private RequestQueue mRequestQueue;
    private ImageLoader mImageLoader;
    LruBitmapCache mLruBitmapCache;

    private static AppController mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public static synchronized AppController getInstance() {
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        }

        return mRequestQueue;
    }

    public ImageLoader getImageLoader() {
        getRequestQueue();
        if (mImageLoader == null) {
            getLruBitmapCache();
            mImageLoader = new ImageLoader(this.mRequestQueue, mLruBitmapCache);
        }

        return this.mImageLoader;
    }

    public LruBitmapCache getLruBitmapCache() {
        if (mLruBitmapCache == null)
            mLruBitmapCache = new LruBitmapCache();
        return this.mLruBitmapCache;
    }

    public <T> void addToRequestQueue(Request<T> req, String tag) {
        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);
        }
    }
}

请帮助

请提供文件
.app.AppController
的代码,以便我们能够解决问题

希望你正在使用

public class AppController extends Application {

private static AppController mInstance;
private RequestQueue mRequestQueue;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
}

public RequestQueue getRequestQueue() {
    if (mRequestQueue == null) {
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());
    }

    return mRequestQueue;
}

}

向我们显示R.layout.activity_profile和太logcatDone。包内应用程序由AppController.java组成。但是,仍然强制关闭。看起来可能是kosong()方法的问题,因为您在txt_名称上设置了null对象。因此,请尝试从方法uploadImage()中删除调用此方法。
package com.intaniryanti.golearnv1t.app;

import android.app.Application;
import android.text.TextUtils;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

import com.intaniryanti.golearnv1t.volley.LruBitmapCache;

public class AppController extends Application {

    public static final String TAG = AppController.class.getSimpleName();

    private RequestQueue mRequestQueue;
    private ImageLoader mImageLoader;
    LruBitmapCache mLruBitmapCache;

    private static AppController mInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    public static synchronized AppController getInstance() {
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(getApplicationContext());
        }

        return mRequestQueue;
    }

    public ImageLoader getImageLoader() {
        getRequestQueue();
        if (mImageLoader == null) {
            getLruBitmapCache();
            mImageLoader = new ImageLoader(this.mRequestQueue, mLruBitmapCache);
        }

        return this.mImageLoader;
    }

    public LruBitmapCache getLruBitmapCache() {
        if (mLruBitmapCache == null)
            mLruBitmapCache = new LruBitmapCache();
        return this.mLruBitmapCache;
    }

    public <T> void addToRequestQueue(Request<T> req, String tag) {
        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);
        }
    }
}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.intaniryanti.golearnv1t, PID:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.intaniryanti.golearnv1t.app.AppController.addToRequestQueue(com.android.volley.Request, java.lang.String)' on a null object at com.intaniryanti.golearnv1t.ProfileActivity.uploadImage(ProfileActivity.java:at com.intaniryanti.golearnv1t.ProfileActivity.access$100(ProfileActivity.java: at com.intaniryanti.golearnv1t.ProfileActivity$2.onClick(ProfileActivity.java: at android.view.View.performClick(View.java:
at android.view.View$PerformClick.run(View.java:
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
public class AppController extends Application {

private static AppController mInstance;
private RequestQueue mRequestQueue;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
}

public RequestQueue getRequestQueue() {
    if (mRequestQueue == null) {
        mRequestQueue = Volley.newRequestQueue(getApplicationContext());
    }

    return mRequestQueue;
}

}