Por favor ayúdame<\/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> :<\/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);
</ span >< span sty le =' color
cc7 832 '> setContentView(R.layout.< span sty le =' color :#9876aa ;font-style : italic '>activity_main</ span >)< span sty le =' color
cc7 832 '>;
</ span >< span sty le =' color
cc7 832 '> mMapView = (MapView) findViewById(R.id.< span sty le =' color :#9876aa ;font-style : italic '>map</ span >)< span sty le =' color
cc7 832 '>;
</ span >loadMobileMapPackage(< span sty le =' color :#9876aa ;font-style : italic '>mmpkFilePath</ span >)< span sty le =' color
cc7 832 '>;
</ span >}
< pre class =" lia-code-sample line-numbers language-none " >< span sty le =' color
cc7 832 '> private void </ span >< span sty le =' color :#ffc66d '>loadMobileMapPackage</ span >(String mmpkFile) {
// crear el paquete de mapa móvil
</ span >< span sty le =' color :#9876aa '>mapPackage </ span >= < span sty le =' color
cc7 832 '>new </ span >MobileMapPackage(mmpkFile)< span sty le =' color
cc7 832 '>;
</ span >< span sty le =' color :#808080 '> // cargar el paquete de mapa móvil de forma asíncrona
</ span >< span sty le =' color :#9876aa '>mapPackage</ span >.loadAsync()< span sty le =' color
cc7 832 '>;
</ span >< span sty le =' color :#808080 '> // agregar listener que se invocará cuando el paquete de mapa móvil haya cargado
</ span >< span sty le =' color :#9876aa '>mapPackage</ span >.addDoneLoadingListener(< span sty le =' color
cc7 832 '>new </ span >Runnable() {
< span sty le =' color :#bbb529 '>@Override
</ span > < span sty le =' color :#bbb529 '> </ span >< span sty le =' color
cc7 832 '>public void </ span >< span sty le =' color :#ffc66d '>run</ span >() {
< span sty le =' color :#808080 '> // verificar estado de carga y que el paquete de mapa móvil tenga mapas
</ span > if(mapPackage.getLoadStatus() == LoadStatus.LOADED && !mapPackage.getMaps().isEmpty()) {
// agregar el mapa del paquete de mapa móvil al MapView
mMapView.setMap(mapPackage.getMaps().get( style="color: #6897bb;">0));
mMapView.setAttributionTextVisible(false);
} else {
// registrar un problema si el paquete de mapa móvil no se carga
Log.e(TAG, mapPackage.getLoadError().getMessage());
}
}
});
}}
Error es:
04-15 12:00:43.653 7426-7426/ com.mytest.mymap E/AndroidRuntime: EXCEPCIÓN FATAL: principal
Proceso: com. mytest.mymap, PID: 7426
java.lang.NullPointerException: Intento de invocar el método virtual 'void com.esri.arcgisruntime.mapping.view.MapView.setMap(com.esri.arcgisruntime.mapping.ArcGISMap)' en una referencia a objeto nula
en com. mytest.mymap.MapActivity$1.run(MapActivity.java:77)
en android.os.Handler.handleCallback(Handler.java:739)
en android.os.Handler.dispatchMessage(Handler.java:95)
en android.os.Looper.loop(Looper.java:211)
en android.app.ActivityThread.main(ActivityThread.java:5389)
en java.lang.reflect.Method.invoke(Método Nativo)
en java.lang.reflect.Method.invoke(Method.java:372)
en com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
en com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Cuando la siguiente condición es true, el valor de mapPackage no es nulo
if (mapPackage.getLoadStatus() == LoadStatus.LOADED && !mapPackage.getMaps().isEmpty()) {
// agregar el mapa del paquete de mapa móvil al MapView
mMapView.setMap(mapPackage.getMaps().get(0));
mMapView.setAttributionTextVisible(false);
}