मैं एक ऐप बनाने के लिए एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं, और इसलिए मैंने अपने एप्लिकेशन में Google मानचित्र लागू किए हैं और सब कुछ ठीक काम कर रहा है, सभी कार्यान्वयन वहां हैं, मैंने तीन बार जांच की है, इसे संचालित करने के लिए आवश्यक सब कुछ है, लेकिन मेरी समस्या यह है कि जब मैं अपने आवेदन को लंबे समय तक बंद करता हूं और मानचित्र गतिविधि को फिर से खोलता हूं तो मुझे जो टुकड़ा दिखा रहा है वह एक यादृच्छिक है, कोई मार्कर कोई पता नहीं बटन नहीं ऑब्जेक्ट सिर्फ देशों के नाम के साथ एक खाली नक्शा। इसलिए मैं Google मानचित्र एप्लिकेशन (आधिकारिक एप्लिकेशन) खोलता हूं और इसे बंद करता हूं, फिर अपनी Google मानचित्र गतिविधि को फिर से खोलने का प्रयास करता हूं और सब कुछ सामान्य हो जाता है, चित्र दिखाने वाले मार्कर प्रदर्शित होते हैं, सभी कार्य सामान्य रूप से संचालित होते हैं क्या कोई मुझे बता सकता है कि समस्या क्या हो सकती है < मजबूत>ध्यान रखें एपीआई कुंजी से लेकर graddle.app और graddle.app.appname में कार्यान्वयन तक सब कुछ जोड़ा जाता है, और मेनिफेस्ट में मेटाडेटा जोड़ा जाता है और इसी तरह...धन्यवाद!

यह मेरा मानचित्र गतिविधि कोड है जहां मैंने मानचित्र पर कुछ गैर सरकारी संगठनों के स्थानों और उनकी छवियों को जोड़ा:


import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;

import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.internal.ICameraUpdateFactoryDelegate;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;


public class map_act extends FragmentActivity implements OnMapReadyCallback {

    Location currentLocation;
    FusedLocationProviderClient fusedLocationProviderClient;
    private static final int REQUEST_CODE = 101;

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

        fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
        fetchLastLocation();
    }

    private void fetchLastLocation() {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]
                    {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
            return;
        }
        Task<Location> task = fusedLocationProviderClient.getLastLocation();
        task.addOnSuccessListener(new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(Location location) {
                if (location != null) {
                    currentLocation = location;
                    Toast.makeText(getApplicationContext(), "Your current location", Toast.LENGTH_SHORT).show();
                    SupportMapFragment supportMapFragment = (SupportMapFragment)
                            getSupportFragmentManager().findFragmentById(R.id.google_map);
                    supportMapFragment.getMapAsync(map_act.this);
                }
            }
        });

    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        LatLng latLng = new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude());
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        googleMap.setMyLocationEnabled(true);
        googleMap.getUiSettings().setMyLocationButtonEnabled(true);
        googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
        googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,12));
        LatLng Unicef1 = new LatLng(33.887837297007835, 35.50965848465925 );
        googleMap.addMarker(new MarkerOptions().position(Unicef1).title("Unicef")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.unicef1)));
        LatLng Unicef2 = new LatLng(33.8865888125746, 35.48744276242378 );
        googleMap.addMarker(new MarkerOptions().position(Unicef2).title("Unicef")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.unicef1)));
        LatLng Unicef3 = new LatLng( 34.42414282398606, 35.82587499823564 );
        googleMap.addMarker(new MarkerOptions().position(Unicef3).title("Unicef")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.unicef1)));
        LatLng Unicef4 = new LatLng(33.27906495185468, 35.215073956249924 );
        googleMap.addMarker(new MarkerOptions().position(Unicef4).title("Unicef")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.unicef1)));

        LatLng Wvision1 = new LatLng(33.86913267946954, 35.576261865395736 );
        googleMap.addMarker(new MarkerOptions().position(Wvision1).title("World Vision")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.worldvision1)));
        LatLng Wvision2 = new LatLng(33.852201737887476, 35.57339217195826 );
        googleMap.addMarker(new MarkerOptions().position(Wvision2).title("World vision")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.worldvision1)));

        LatLng Drc = new LatLng(33.892777808313056, 35.52051074415333 );
        googleMap.addMarker(new MarkerOptions().position(Drc).title("Danish Refugee Council")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.drc1)));

        LatLng Nrc = new LatLng(33.897930365217256,  35.493069449639805 );
        googleMap.addMarker(new MarkerOptions().position(Nrc).title("Norwegian Refugee Council")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.nrc1)));

        LatLng Oxfam1 = new LatLng(33.88743623998913, 35.50865875340152 );
        googleMap.addMarker(new MarkerOptions().position(Oxfam1).title("OXFAM")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.oxfam1)));
        LatLng Oxfam2 = new LatLng(33.8484475255134, 35.91956548906049 );
        googleMap.addMarker(new MarkerOptions().position(Oxfam2).title("OXFAM")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.oxfam1)));
        LatLng Oxfam3 = new LatLng(34.42224203429102, 35.827192870916654);
        googleMap.addMarker(new MarkerOptions().position(Oxfam3).title("OXFAM")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.oxfam1)));

        LatLng Wfp = new LatLng(33.89447500501417, 35.50479228624766);
        googleMap.addMarker(new MarkerOptions().position(Wfp).title("World Food Programme")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.wfp1)));

        LatLng Unhcr = new LatLng(33.897930365217256, 35.501776697895714);
        googleMap.addMarker(new MarkerOptions().position(Unhcr).title("United Nations High Commissioner for Refugees")
                .icon(BitmapFromVector(getApplicationContext(), R.drawable.unhcr1)));
    }



    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case REQUEST_CODE:
                if(grantResults.length>0 && grantResults[0]== PackageManager.PERMISSION_GRANTED){
                    fetchLastLocation();
                }
                break;
        }
    }
    private BitmapDescriptor BitmapFromVector(Context context, int vectorResId) {
        // below line is use to generate a drawable.
        Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorResId);

        // below line is use to set bounds to our vector drawable.
        vectorDrawable.setBounds(1, 1, vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight());

        // below line is use to create a bitmap for our
        // drawable which we have added.
        Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);

        // below line is use to add bitmap in our canvas.
        Canvas canvas = new Canvas(bitmap);

        // below line is use to draw our
        // vector drawable in canvas.
        vectorDrawable.draw(canvas);

        // after generating our bitmap we are returning our bitmap.
        return BitmapDescriptorFactory.fromBitmap(bitmap);
    }
}

नक्शे से संबंधित मेरा मेनिफेस्ट कोड यहां दिया गया है:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

मेरे बिल्ड.ग्रेडल कोड में मैंने जोड़ा:

 google()
        jcenter()

और यहाँ मेरा build.graddle.appname कोड है:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'


 implementation "com.google.android.gms:play-services-maps:$googlePlayVersion"
 implementation "com.google.android.gms:play-services-location:$googlePlayVersion"
2
Mhamad jawad al hajjar 22 मार्च 2021, 19:33
क्या आप कृपया वह कोड जोड़ सकते हैं जो मानचित्र निर्माण और रुकने पर क्या हो रहा है से संबंधित है। यह किसी को समस्या का निदान करने में मदद करेगा।
 – 
Scott Allsup
22 मार्च 2021, 19:39
इस पर
 – 
Mhamad jawad al hajjar
22 मार्च 2021, 19:41
fetchLastLocation(); को onResume() विधि में ले जाने का प्रयास करें।
 – 
Scott Allsup
22 मार्च 2021, 20:00
ठीक है, मैं कोशिश करूँगा फिर इसका परीक्षण करूँगा और आपके पास वापस आऊंगा धन्यवाद !!
 – 
Mhamad jawad al hajjar
22 मार्च 2021, 20:10
1
एंड्रॉइड जीवनचक्र से, गतिविधि शुरू होने पर onCreate () फिर onResume () कहा जाता है। ऐप को बैकग्राउंड से फोरग्राउंड में डालते समय, केवल onResume() को ही कॉल किया जाएगा। आप यहां से आरेख देख सकते हैं: developer.android.com/guide/components/ छवियों/… प्रश्न के लिए हाथ में ... यह केवल यह छोड़ सकता है कि कार्य विफल हो रहा है, क्योंकि आप केवल कार्य पर मार्करों को सफल होने पर सेट कर रहे हैं
 – 
Scott Allsup
23 मार्च 2021, 12:24

1 उत्तर

सबसे बढ़िया उत्तर

तो यह पता चला कि सब कुछ सही है, लेकिन एक कदम है जिसके बारे में मुझे नहीं पता था, मुझे Google क्लाउड प्लेटफ़ॉर्म में जाना चाहिए था और मेरी एपीआई कुंजी के लिए Google मैप्स एसडीके को सक्षम करना चाहिए था, इसलिए मैंने जाकर ऐसा किया और फिर डाउनलोड किया google-services.json फायरबेस से (बैक-एंड मैं उपयोग कर रहा हूं) और मेरे ऐप के फ़ोल्डर में पुराने को नई .json फ़ाइल से बदल दिया। क्या हो रहा था कि मेरी एपीआई कुंजी को बाहरी उपयोग के लिए सक्षम नहीं किया गया था, इसलिए जब मैं अपना Google मानचित्र एप्लिकेशन (आधिकारिक ऐप) खोल रहा था, तो मेरे ऐप की एपीआई कुंजी को Google मानचित्र आधिकारिक द्वारा प्रतिस्थापित किया गया था, और यही कारण है कि मेरे एप्लिकेशन का ऐप था ' काम नहीं कर रहा है जब तक कि मैं गूगल मैप्स आधिकारिक एप्लिकेशन को नहीं खोलता और फिर इसे बंद नहीं करता। तो मैंने वह किया और सब कुछ ठीक काम कर रहा है।

0
Mhamad jawad al hajjar 23 मार्च 2021, 14:50