Android从Webhost获取json以添加标记ERROR E / zygote64

时间:2018-07-08 22:03:17

标签: java android json google-maps android-studio

我正在制作一个项目示例,以从000webhost获取json坐标并在Android的地图中显示标记。 这是我的Java主要代码:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener,GoogleMap.OnMarkerClickListener  {

private GoogleMap mMap;
public static final String URL="http://rrsaikat.mydiscussion.net/myjson/location.php";
private JSONArray result;

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

    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
            && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
    {
        return;
    }
    mMap.setMyLocationEnabled(true);

    RequestQueue requestQueue= Volley.newRequestQueue(getApplicationContext());
    StringRequest stringRequest=new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d("JSONResult" , response.toString());
            JSONObject j = null;
            try{
                j =new JSONObject(response);
                result = j.getJSONArray("FL");
                for(int i=0;i<result.length();i++){
                    JSONObject jsonObject1=result.getJSONObject(i);
                    String lat_i = jsonObject1.getString("1");
                    String long_i = jsonObject1.getString("2");

                    mMap.addMarker(new MarkerOptions()
                            .position(new LatLng(Double.parseDouble(lat_i) , Double.parseDouble(long_i)))
                            .title(Double.valueOf(lat_i).toString() + "," + Double.valueOf(long_i).toString())
                            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))
                    );

                    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(23.6850,90.3563), 6.0f));
                }

            }catch (NullPointerException e){
                e.printStackTrace();

            }

            catch (JSONException e){
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
            Toast.makeText(MapsActivity.this, error.getMessage(), Toast.LENGTH_LONG).show();
        }
    });

    int socketTimeout = 10000;
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    stringRequest.setRetryPolicy(policy);
    requestQueue.add(stringRequest);

}

@Override
public void onLocationChanged(Location location) {

}

@Override
public void onStatusChanged(String s, int i, Bundle bundle) {

}

@Override
public void onProviderEnabled(String s) {

}

@Override
public void onProviderDisabled(String s) {

}

@Override
public boolean onMarkerClick(Marker marker) {
    return false;
}

但是我在Android中没有标记,并且具有以下调试功能:

  

W / zygote64:由于无法识别的类加载器I / DynamiteModule,跳过重复的类检查:考虑本地模块   com.google.android.gms.maps_dynamite:0和远程模块   com.google.android.gms.maps_dynamite:220 I / DynamiteModule:已选中   远程版本的com.google.android.gms.maps_dynamite,版本> = 220   W / zygote64:由于无法识别而跳过重复的类检查   classloader I / Google Maps Android API:Google Play服务客户端   版本:12451000 I / Google Maps Android API:Google Play服务   软件包版本:12685023 I / zygote64:执行部分代码缓存   收集,代码= 23KB,数据= 29KB               收集代码缓存后,代码= 23KB,数据= 29KB               将代码缓存容量增加到128KB E / zygote64:Android版本> = 6.0上不存在String#value字段   D / NetworkSecurityConfig:未使用指定网络安全配置   平台默认I / System.out:(HTTPLog)-静态:isSBSettingEnabled   false I / System.out:(HTTPLog)-静态:isSBSettingEnabled false   I / zygote64:执行部分代码缓存收集,代码= 61KB,数据= 59KB   D / TcpOptimizer:TcpOptimizer-ON I / zygote64:代码缓存后   收集,代码= 61KB,数据= 59KB               将代码缓存容量增加到256KB D / ViewRootImpl @ 82b5652 [MapsActivity]:setView =   DecorView @ 42ced23 [MapsActivity] TM = true MM = false   D / ViewRootImpl @ 4f69478 [启动器]:MSG_WINDOW_FOCUS_CHANGED 0   D / ViewRootImpl @ 82b5652 [MapsActivity]:dispatchAttachedToWindow   V /表面:sf_framedrop调试:0x4f4c,游戏:假,记录:0   D / ViewRootImpl @ 82b5652 [MapsActivity]:中继返回:   旧= [0,0] [0,0]新= [0,0] [1080,2220]结果= 0x7曲面= {有效= true   490213584896}更改= true D / mali_winsys:EGLint   new_window_surface(egl_winsys_display *,void *,EGLSurface,   EGLConfig,egl_winsys_surface **,egl_color_buffer_format *,   EGLBoolean)返回0x3000,[1080x2220]格式:1 D / OpenGLRenderer:   eglCreateWindowSurface = 0x7230f51fa0   D / ViewRootImpl @ 82b5652 [MapsActivity]:MSG_RESIZED_REPORT:   frame = Rect(0,0-1080,2220)ci = Rect(0,63-0,0)vi = Rect(0,63-0,   0)或= 1                                         MSG_WINDOW_FOCUS_CHANGED 1 V / InputMethodManager:开始输入:   tba=android.view.inputmethod.EditorInfo@9c8881 nm:   com.a9831.sapires.samuel9831 ic = null I / InputMethodManager:   startInputInner-mService.startInputOrWindowGainedFocus V /曲面:   sf_framedrop调试:0x4f4c,游戏:假,记录:0V /表面:   sf_framedrop调试:0x4f4c,游戏:false,日志记录:0 D / mali_winsys:   EGLint new_window_surface(egl_winsys_display *,void *,EGLSurface,   EGLConfig,egl_winsys_surface **,egl_color_buffer_format *,   EGLBoolean)返回0x3000,[1080x2157]格式:2 D / OpenGLRenderer:   eglDestroySurface = 0x7242c28a00 D / ViewRootImpl @ 4f69478 [启动器]:   重新发出中继:旧= [0,0] [1080,2220]新= [0,0] [1080,2220]   result = 0x5 surface = {valid = false 0}已更改= true I / System.out:   (HTTPLog)-静态:isSBSettingEnabled false I / System.out:   (HTTPLog)-静态:isSBSettingEnabled false   D / ViewRootImpl @ 4f69478 [Launcher]:dispatchDetachedFromWindow   D / InputEventReceiver:通道'f8f1abc   com.a9831.sapires.samuel9831 / com.a9831.sapires.samuel9831.Launcher   (客户端)'〜处置输入事件接收器。                         频道'f8f1abc com.a9831.sapires.samuel9831 / com.a9831.sapires.samuel9831.Launcher   (客户端)'〜NativeInputEventReceiver。 I / zygote64:执行完整代码缓存   集合,代码= 124KB,数据= 118KB I / zygote64:代码缓存后   集合,代码= 111KB,数据= 63KB W / DynamiteModule:本地模块   com.google.android.gms.google的描述符类不能证明   找到了。 I / DynamiteModule:考虑本地模块   com.google.android.gms.googlecertificates:0和远程模块   com.google.android.gms.google证书:4                     com.google.android.gms.googlecertificates的选定远程版本,版本> = 4 W / zygote64:   由于无法识别类加载器而跳过重复的类检查   I / zygote64:执行部分代码缓存收集,代码= 122KB,数据= 79KB   I / zygote64:收集代码缓存后,代码= 122KB,数据= 79KB               将代码缓存容量增加到512KB I / zygote64:编译器分配了4MB的空间来编译void   com.google.maps.api.android.lib6.gmm6.vector.bs.b(javax.microedition.khronos.opengles.GL10)   I / System.out:(HTTPLog)-静态:isSBSettingEnabled false I / System.out:   (HTTPLog)-静态:isSBSettingEnabled false V / InputMethodManager:   开始输入:tba=android.view.inputmethod.EditorInfo@b8feb38 nm:   com.a9831.sapires.samuel9831 ic = null I / InputMethodManager:   startInputInner-mService.startInputOrWindowGainedFocus   D / ViewRootImpl @ 82b5652 [MapsActivity]:performDraw()被跳过   AOD_SHOW_STATE ... DisplayState = 3 D / ViewRootImpl @ 82b5652 [MapsActivity]:   MSG_WINDOW_FOCUS_CHANGED 0 D / OpenGLRenderer:eglDestroySurface =   0x7230f51fa0

唯一的红色错误是:

  

E / zygote64:Android版本> = 6.0上不存在String#value字段

但是该程序不会停止并且无法工作,但是没有标记。 提前谢谢

0 个答案:

没有答案