What does this mean “No DRP key due to exception:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp”?

匿名 (未验证) 提交于 2019-12-03 00:52:01

问题:

I am trying to parse local url (http://192.168.1.94/wamp/up.php) to use it in my app android ( JSON parse ).

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);         }     } } 

ERROR look like :

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


回答1:

I am not sure it will solve your problem, but in many cases there is a permission request problem in API 23 or above.

I also faced the same problem in my project, which I resolved by using bellow procedure.

To avoid No DRP key due to exception:java.lang.ClassNotFoundException request permission in Splash screen in above API 23

Eg:

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);      } } 

after checking the above permission, check the remaining permissions in onActivityResult, one by one.

e.g,

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; } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!