2016-11-12 4 views
7

मैं एक MapActivity एंड्रॉयड स्टूडियो का उपयोग कर ऐसा करने के लिए कोशिश कर रहा हूँ नहीं मिला। इसे उपयोगकर्ता का स्थान दिखाना है।ANDROID: त्रुटि डब्ल्यू/DynamiteModule: com.google.android.gms.googlecertificates के लिए स्थानीय मॉड्यूल वर्णनकर्ता वर्ग

ठीक है, मुझे पता है कि मुझे एपीआई का उपयोग करने के लिए एक कुंजी चाहिए, और मेरा विश्वास करो, मैंने उस कुंजी को कम से कम चार बार बदल दिया है ... मेरे पास AndroidManifest.xml में अनुमतियां भी हैं।

बात यह है कि मैं उपयोगकर्ता के स्थान के बिना मानचित्र दिखा सकता हूं, लेकिन यदि मैं अपना स्थान दिखाने की कोशिश करता हूं, तो ऐप अच्छी तरह से संकलित करता है लेकिन जब मैं इसे निष्पादित करने का प्रयास करता हूं, तो यह बंद हो जाता है और मुझे यह त्रुटि प्राप्त होती है:

11-12 09:13:28.416 21576-21653/raquel.mapapplication W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found. 
11-12 09:13:28.424 21576-21653/raquel.mapapplication I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:2 
11-12 09:13:28.424 21576-21653/raquel.mapapplication I/DynamiteModule: Selected remote version of com.google.android.gms.googlecertificates, version >= 2 
11-12 09:13:28.432 21576-21653/raquel.mapapplication W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/m/0000000b/n/armeabi 
11-12 09:13:28.436 21576-21653/raquel.mapapplication D/GoogleCertificates: com.google.android.gms.googlecertificates module is loaded 
11-12 09:13:28.504 21576-21653/raquel.mapapplication D/GoogleCertificatesImpl: Fetched 190 Google release certificates 
11-12 09:13:28.505 21576-21653/raquel.mapapplication D/GoogleCertificatesImpl: Fetched 363 Google certificates 
11-12 09:13:31.235 21576-21576/raquel.mapapplication I/Process: Sending signal. PID: 21576 SIG: 9 

यह गूगल प्रमाण पत्र के बारे में कुछ का उल्लेख है, और यही वजह है कि मैं शायद सोचा था कि यह कुंजी के साथ क्या करना कुछ है ... लेकिन मुझे यकीन है नहीं हूँ और मैं विचार मैं गलत क्या कर रहा हूँ नहीं है।

आपकी मदद के लिए धन्यवाद।

////////

ठीक है, मैं कुछ कोड पोस्ट करने के लिए कोशिश करेंगे ... मैं कोड हर समय बदल रहा है, लेकिन यह पिछले मैंने कोशिश की है (मैं भी setMyLocationEnable की कोशिश की (सही), क्योंकि getMyLocation() हटा दिया गया है, लेकिन मैं एक ही त्रुटि प्राप्त):

सार्वजनिक वर्ग MapsActivity फैली FragmentActivity लागू करता OnMapReadyCallback {

private GoogleMap mMap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 

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

    Location location=mMap.getMyLocation(); 

    double lat=location.getLatitude(); 
    double lon=location.getLongitude(); 

    // Add a marker in Sydney and move the camera 
    LatLng sydney = new LatLng(lat, lon); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
} 

}

धन्यवाद जिसने मुझे और जिस व्यक्ति ने मेरी टिप्पणी संपादित की है ... मैं अभी भी पाठ को प्रारूपित करने के बारे में अच्छी तरह से नहीं जानता ...

+0

आप कोड का एक सा भी शामिल कर सकते हैं, कृपया? –

+0

Google डेवलपर कंसोल पर अपनी परियोजना में SHA1 कुंजी अद्यतन करें और अपने Android परियोजना में गूगल मैप्स एपीआई कुंजी अद्यतन करने के लिए प्रयास करें। बेहतर समझ के लिए, https://developers.google.com/maps/documentation/android-api/signup#if-you-are-using-the-standard- सुनिश्चित करें कि आप ठीक से चरणों में इस [प्रलेखन] दिए गए (का पालन करते हैं गूगल-नक्शे-android-एपीआई) विशेष रूप से की [ "कहाँ को अपने ऐप्लिकेशन के SHA-1 फ़िंगरप्रिंट पाने के लिए"] (https://developers.google.com/maps/documentation/android-api/signup#fingerprint) – KENdi

+3

हाय हिस्सा Raquel, क्या आप इसे ठीक किया? (मुझे यहां एक ही समस्या है) – MiguelHincapieC

उत्तर

0

sdk manager खोलें, google play services डाउनलोड/अपडेट करें। और एक नया एमुलेटर बनाएं।

0

लोड हो रहा है प्रमाण पत्र एपीआई में बग हो सकता है और मैं कहीं google डेवलपर भी यह वर्णन किया है कि खेलने के सेवा ताकि त्रुटि हो सकती है खेलने एप्लिकेशन या तीसरे पक्ष के एप्लिकेशन सत्यापित करने के लिए भी प्रवेश करते कोशिश कर रहा है लगता है। मैं इसके बारे में और अधिक नहीं जानता।

लेकिन अगर आप अभी भी उपयोगकर्ता पर मार्कर रखने के साथ परेशानी हो रही है, स्थिति आप नीचे दिए गए कोड की कोशिश कर सकते मैं यह परीक्षण किया है और आवेदन

@Override 
public void onMapReady(GoogleMap googleMap) 

{ 
    myGoogleMap = googleMap; 
    placeMarkerOnPosition(); 
} 

public void placeMarkerOnPosition() { 
//// check permissions to access resources ///////// 
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; 
} 
    LocationManager locationManager = (LocationManager) 
    getSystemService(Context.LOCATION_SERVICE); 

अब में काम कर रहा है आप दो तरह से

साथ इसे पा सकते हैं
//////////////// find location if GPS provider is available (GPS should 
enable to envoke this callback) 

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
new LocationListener() 
{ 
@Override 
public void onLocationChanged(Location location) { 

try { 
    Geocoder geocoder = new Geocoder(getApplicationContext());        
    myLatitude = location.getLatitude(); 
    myLongitude = location.getLongitude(); 
    LatLng myPosition = new LatLng(myLatitude,myLongitude); 
    List<Address> places=geocoder.getFromLocation(myLatitude, 
    myLongitude,1); 
    myLocation = places.get(0).getSubLocality() 
       +""+places.get(0).getLocality(); 

    myGoogleMap.clear(); 
    myGoogleMap.addMarker(new 
    MarkerOptions().position(myPosition).title(myLocation)); 

    myGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myPosition, 
                   13.5f)); 


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

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

    } 

    @Override 
    public void onProviderEnabled(String s) { 

    } 

    @Override 
    public void onProviderDisabled(String s) { 

    } 
    }); 

//////////////// checking with network providers ///////// 


if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 


locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 
             0, new LocationListener() { 
@Override 
public void onLocationChanged(Location location) { 
myLatitude = location.getLatitude(); 
myLongitude = location.getLongitude(); 
LatLng myPosition = new LatLng(myLatitude, myLongitude); 
myGoogleMap.clear(); 
myGoogleMap.addMarker(new MarkerOptions().position(myPosition).title("My 
                  Position")); 

myGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myPosition, 
                   13.5f)); 

}

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

       } 

       @Override 
       public void onProviderEnabled(String s) { 

       } 

       @Override 
       public void onProviderDisabled(String s) { 

       } 
      }); 

     } 

    //////// Or you can find it with user recent location ////////// 

    Criteria criteria = new Criteria(); 
    String bestProvider = locationManager.getBestProvider(criteria,true); 
    Locationlocation=locationManager.getLastKnownLocation(bestProvider); 

    ////////// load your location from last recent locations //////// 
      if (location != null) { 
       Geocoder geocoder = new Geocoder(getApplicationContext()); 

       try { 
        myLatitude = location.getLatitude(); 
        myLongitude = location.getLongitude(); 
        LatLng myPosition = new LatLng(myLatitude, myLongitude); 
        List<Address> places = 
        geocoder.getFromLocation(myLatitude, myLongitude, 1); 
        myLocation = places.get(0).getSubLocality() + " " + places.get(0).getLocality(); 

        myGoogleMap.clear(); 
        myGoogleMap.addMarker(new MarkerOptions().position(myPosition).title(myLocation)); 
        myGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myPosition, 13.5f)); 


       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
+0

सुझाव: तुम वहाँ कोड का एक बहुत कुछ है - बहुत lazily दांतेदार स्वरूपित /।कृपया यह सुनिश्चित करने के लिए कि ** पूर्वावलोकन ** विंडो का उपयोग करें कि आप कुछ कोड गड़बड़ न करें, लेकिन कुछ ऐसा जो लोग पर्याप्त पठनीय पाएंगे। – GhostCat

संबंधित मुद्दे