加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

这是什么意思“由于异常而没有DRP密钥:java.lang.ClassNotFound

发布时间:2020-12-15 02:16:07 所属栏目:Java 来源:网络整理
导读:我试图解析本地URL( http://192.168.1.94/wamp/up.php)在我的应用程序android(JSON解析)中使用它. mainActivity android: package itawfik.com.myapplication;import android.app.ProgressDialog;import android.os.AsyncTask;import android.os.Bundle;imp
我试图解析本地URL( http://192.168.1.94/wamp/up.php)在我的应用程序android(JSON解析)中使用它.

mainActivity android:

package itawfik.com.myapplication;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;


public class MainActivity extends ActionBarActivity {


    Button btnHit;
    TextView txtJson;
    ProgressDialog pd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnHit = (Button) findViewById(R.id.btnHit);
        txtJson = (TextView) findViewById(R.id.name);

        btnHit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new JsonTask().execute("http://192.168.1.94/wamp/up.php");
            }
        });


    }


    private class JsonTask extends AsyncTask<String,String,String> {

        protected void onPreExecute() {
            super.onPreExecute();

            pd = new ProgressDialog(MainActivity.this);
            pd.setMessage("Please wait");
            pd.setCancelable(false);
            pd.show();
        }

        protected String doInBackground(String... params) {


            HttpURLConnection connection = null;
            BufferedReader reader = null;

            try {
                URL url = new URL(params[0]);
                connection = (HttpURLConnection) url.openConnection();
                connection.connect();


                InputStream stream = connection.getInputStream();

                reader = new BufferedReader(new InputStreamReader(stream));

                StringBuffer buffer = new StringBuffer();
                String line = "";

                while ((line = reader.readLine()) != null) {
                    buffer.append(line + "n");
                    Log.d("Response: ","> " + line);   //here u ll get whole response...... :-)

                }

                return buffer.toString();


            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (connection != null) {
                    connection.disconnect();
                }
                try {
                    if (reader != null) {
                        reader.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            if (pd.isShowing()) {
                pd.dismiss();
            }
            txtJson.setText(result);
        }
    }
}

错误看起来像:

08-14 17:21:23.599 4201-4201/itawfik.com.myapplication E/SysUtils:
ApplicationContext is null in ApplicationStatus 08-14 17:21:23.607
4201-4201/itawfik.com.myapplication E/libEGL: validate_display:255
error 3008 (EGL_BAD_DISPLAY) 08-14 17:21:23.607
4201-4201/itawfik.com.myapplication E/libEGL: validate_display:255
error 3008 (EGL_BAD_DISPLAY)

[ 08-14 17:21:23.608 4201: 4201 D/ ]

HostConnection::get() New Host Connection established 0xb07743d0,tid
4201 08-14 17:21:23.799 4201-4201/itawfik.com.myapplication
E/DataReductionProxySettingListener: No DRP key due to
exception:java.lang.ClassNotFoundException:
com.android.webview.chromium.Drp


08-14 17:21:23.820 4201-4201/itawfik.com.myapplication
E/AndroidRuntime: FATAL EXCEPTION: main
Process: itawfik.com.myapplication,PID: 4201
java.lang.RuntimeException: Unable to start activity
ComponentInfo{itawfik.com.myapplication/itawfik.com.myapplication.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method ‘void
android.widget.Button.setOnClickListener(android.view.View$OnClickListener)’
on a null object reference
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual
method ‘void
android.widget.Button.setOnClickListener(android.view.View$OnClickListener)’
on a null object reference
at
itawfik.com.myapplication.MainActivity.onCreate(MainActivity.java:36)
at android.app.Activity.performCreate(Activity.java:6237)
at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)?
at android.app.ActivityThread.-wrap11(ActivityThread.java)?
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)?
at android.os.Handler.dispatchMessage(Handler.java:102)?
at android.os.Looper.loop(Looper.java:148)?
at android.app.ActivityThread.main(ActivityThread.java:5417)?
at java.lang.reflect.Method.invoke(Native Method)?
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)?
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

解决方法

我不确定它会解决您的问题,但在很多情况下,API 23或更高版本中存在权限请求问题.

我在项目中也面临同样的问题,我通过使用波纹管程序解决了这个问题.

避免由于异常导致的无DRP密钥:上面的API中的Splash屏幕中的java.lang.ClassNotFoundException请求权限23

例如:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    permission = Settings.System.canWrite(this);
} else {
    permission = ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_SETTINGS) == PackageManager.PERMISSION_GRANTED;
}
if (!permission) {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
        intent.setData(Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent,CODE_WRITE_SETTINGS_PERMISSION);

    }
}

检查上述权限后,逐个检查onActivityResult中的剩余权限.

例如,

if (ActivityCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

    Log.v("Permission",Manifest.permission.WRITE_EXTERNAL_STORAGE+"  Permission is revoked");
    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},CODE_WRITE_SETTINGS_PERMISSION);

    return;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读