S'il vous plaît aidez-moi<\/P><\/DIV><\/DIV>
<\/P>
public class <\/SPAN>MainActivity extends <\/SPAN>AppCompatActivity {
Button btn<\/SPAN>;
<\/SPAN> <\/SPAN>@Override
<\/SPAN> <\/SPAN>protected void <\/SPAN>onCreate<\/SPAN>(Bundle savedInstanceState) {
super<\/SPAN>.onCreate(savedInstanceState);
<\/SPAN> <\/SPAN>setContentView(R.layout.activity_main<\/SPAN>);
<\/SPAN> <\/SPAN>btn<\/SPAN>=(Button)findViewById(R.id.button<\/SPAN>);
<\/SPAN> <\/SPAN>}
public void <\/SPAN>btnClick<\/SPAN>(View view) {
Intent intent = new <\/SPAN>Intent(MainActivity.this,<\/SPAN>MapActivity.class<\/SPAN>);
<\/SPAN> <\/SPAN>startActivity(intent);
<\/SPAN> <\/SPAN>}
}<\/PRE> <\/P> MapActivity<\/SPAN>:<\/P> <\/P>public class <\/SPAN>MapActivity extends <\/SPAN>AppCompatActivity {
private static final <\/SPAN>String TAG <\/SPAN>= MainActivity.class<\/SPAN>.getSimpleName();
<\/SPAN> private static <\/SPAN>String extSDCardDirName<\/SPAN>;
<\/Span> private static String filename;
private static String mmpkFilePath;
private MapView mMapView;
private MobileMapPackage mapPackage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// obtenir le répertoire
extSDCardDirName = Environment.getExternalStorageDirectory() + File.separator + "mmm/";
// obtenir le nom du fichier du package mobile map
filename = "maps.mmpk";
// créer le chemin complet vers le fichier mobile map package
mmpkFilePath = extSDCardDirName + filename;
Log.d("FilePath", mmpkFilePath);
// récupérer le MapView depuis la mise en page
mMapView = (MapView) findViewById(R.id.map);
loadMobileMapPackage(mmpkFilePath);
}
private void loadMobileMapPackage(String mmpkFile) {
mapPackage = new MobileMapPackage(mmpkFile);
mapPackage.loadAsync();
mapPackage.addDoneLoadingListener(new Runnable() {
@Override
public void run() {
if (mapPackage.getLoadStatus() == LoadStatus.LOADED && !mapPackage.getMaps().isEmpty()) {
mMapView.setMap(mapPackage.getMaps().get(... style="color: #6897bb;">0));
mMapView.setAttributionTextVisible(false);
} else {
// enregistrer un problème si le mobile map package ne parvient pas à se charger
Log.e(TAG, mapPackage.getLoadError().getMessage());
}
}
});
}}
L'erreur est :
04-15 12:00:43.653 7426-7426/ com.mytest.mymap E/AndroidRuntime : EXCEPTION FATALE : main
Processus : com. mytest.mymap, PID : 7426
java.lang.NullPointerException : Tentative d'invoquer la méthode virtuelle 'void com.esri.arcgisruntime.mapping.view.MapView.setMap(com.esri.arcgisruntime.mapping.ArcGISMap)' sur une référence d'objet nulle
à com. mytest.mymap.MapActivity$1.run(MapActivity.java :77)
à android.os.Handler.handleCallback(Handler.java :739)
à android.os.Handler.dispatchMessage(Handler.java :95)
à android.os.Looper.loop(Looper.java :211)
à android.app.ActivityThread.main(ActivityThread.java :5389)
à java.lang.reflect.Method.invoke(Native Method)
à java.lang.reflect.Method.invoke(Method.java :372)
à com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java :1020)
à com.android.internal.os.ZygoteInit.main(ZygoteInit.java :815)
Lorsque la condition suivante est true, la valeur mapPackage n'est pas nulle
if (mapPackage.getLoadStatus() == LoadStatus.LOADED && !mapPackage.getMaps().isEmpty()) {
// ajouter la carte du mobile map package au MapView
mMapView.setMap(mapPackage.getMaps().get(0));
mMapView.setAttributionTextVisible(false);
}