这是什么意思“由于异常而没有DRP密钥:java.lang.ClassNotFoundException:com.android.webview.chromium.Drp"? [英] What does this mean "No DRP key due to exception:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp"?
问题描述
我正在尝试解析本地网址( http://192.168.1.94/wamp/up.php )在我的应用android(JSON parse)中使用它.
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:
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: ApplicationStatus 08-14 17:21:23.607中的ApplicationContext为null 4201-4201/itawfik.com.my应用程序E/libEGL:validate_display:255 错误3008(EGL_BAD_DISPLAY)08-14 17:21:23.607 4201-4201/itawfik.com.my应用程序E/libEGL:validate_display:255 错误3008(EGL_BAD_DISPLAY)
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/]
[ 08-14 17:21:23.608 4201: 4201 D/ ]
HostConnection :: get()建立新的主机连接0xb07743d0,tid 4201 08-14 17:21:23.799 4201-4201/itawfik.com.myapplication E/DataReductionProxySettingListener:由于没有DRP密钥 异常:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp
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:致命异常:main 流程:itawfik.com.my应用程序,PID:4201 java.lang.RuntimeException:无法启动活动 ComponentInfo {itawfik.com.myapplication/itawfik.com.myapplication.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)' 在空对象引用上 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.NullPointerException:尝试调用虚拟 方法无效" android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)' 在空对象引用上 在 itawfik.com.myapplication.MainActivity.onCreate(MainActivity.java:36) 在android.app.Activity.performCreate(Activity.java:6237) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThread.-wrap11(ActivityThread.java) 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) 在java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
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或更高版本中存在权限请求问题.
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.
要避免在上述API 23的启动画面中获得No DRP key due to exception:java.lang.ClassNotFoundException
请求权限
To avoid No DRP key due to exception:java.lang.ClassNotFoundException
request permission in Splash screen in above API 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
中的其余权限.
after checking the above permission, check the remaining permissions in onActivityResult
, one by one.
例如,
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;
}
这篇关于这是什么意思“由于异常而没有DRP密钥:java.lang.ClassNotFoundException:com.android.webview.chromium.Drp"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!