2016-08-14 8 views
2

私は、ローカルURL(http://192.168.1.94/wamp/up.php)をアプリケーションのアンドロイド(JSON解析)で使用するために解析しようとしています。これは "例外のためDRPキーがありません:java.lang.ClassNotFoundException:com.android.webview.chromium.Drp"という意味ですか?

mainActivityアンドロイド:

8月14日17:21:

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は次のようになり23.599 4201から4201/itawfik.com.myapplicationのE/sysutilsの: のApplicationContextがでnullでありますApplicationStatus 08-14 17:21:23.607 4201-4201/itawfik.com.myapplication E/libEGL:validate_display:255 エラー3008(EGL_BAD_DISPLAY)08-14 17:21:23.607 4201-4201/itawfik.com.myapplication E/libEGL:validate_display:2 55 エラー3008(EGL_BAD_DISPLAY)

[8月14日17:21:23.608 4201:4201 D /]

HostConnection ::()新しいホスト接続が0xb07743d0、TID 4201 8月14日17確立し得ます。 21:23.799 4201から4201/itawfik.com.myapplication E/DataReductionProxySettingListener:いいえDRPキーによる例外 へ:java.lang.ClassNotFoundExceptionが: com.android.webview.chromium.Drp


08- 14 17:21:23.820 4201-4201/itawfik.com.myapplicエーション E/AndroidRuntime:致命的な例外:メイン プロセス:itawfik.com.myapplication、PID:4201 java.lang.RuntimeException:活性 ComponentInfo {itawfik.com.myapplication/itawfik.com.myapplication.MainActivity}を開始できません: のjava.lang.NullPointerException:仮想メソッドを呼び出そうと '無効 android.widget.Button.setOnClickListener(android.view.View $ OnClickListener') nullオブジェクト参照 上 android.app.ActivityThread.performLaunchActivity(でActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)android.os.Handler.dispatchMessage(Handler.java:102)で を実行してください.HawandMessage(ActivityThread.java:1344) にを追加しました。 android.os.Looper.loopで でjava.lang.reflect.Method.invoke(ネイティブメソッド) でandroid.app.ActivityThread.mainで(Looper.java:148) (ActivityThread.java:5417) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.NullPointerExceptionが: itawfik.com.myapplication.MainActivityでnullオブジェクト参照 上の仮想 方法 '無効 android.widget.Button.setOnClickListener(android.view.View $ OnClickListener') を起動しよう.onCreate(MainActivity.java:36) android.app.Activity.performCreate(Activity.java:6237) at 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 android.os.Looper.loopでandroid.os.Handler.dispatchMessageでの.java) でandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) (Handler.java:102) (ルーパー。 java:148) android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method com.android.internal.os.ZygoteInit.mainで com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) で.invoke(ネイティブメソッド) (ZygoteInit.java:616)

+0

はあなただけエミュレータやデバイス上で、エラーの上に持っていますか? – ViramP

答えて

0

私はあなたの問題を解決するかどうかはわかりませんが、多くの場合、API 23以降で許可要求の問題があります。

私のプロジェクトでも同様の問題に直面しましたが、私はこの方法を使用して解決しました。上記のAPIでのスプラッシュ画面でNo DRP key due to exception:java.lang.ClassNotFoundException要求許可を回避するために

例:

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; 
} 
関連する問題