Prosím pomozte mi<\/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); // získat adresář extSDCardDirName = Environment.getExternalStorageDirectory() + File.separator + "mmm/";// získat název souboru mobile map package filename = "maps.mmpk";// vytvořit úplnou cestu k souboru mobile map package mmpkFilePath = extSDCardDirName + filename; Log.d("FilePath", mmpkFilePath);// získat MapView z layoutu mMapView = (MapView) findViewById(R.id.map); loadMobileMapPackage(mmpkFilePath); } private void loadMobileMapPackage(String mmpkFile) { // vytvořit mobile map package mapPackage = new MobileMapPackage(mmpkFile); // načíst mobile map package asynchronně mapPackage.loadAsync(); // přidat posluchač dokončení, který se vyvolá, když je mobile map package načten mapPackage.addDoneLoadingListener(new Runnable() {@Override public void run() { // zkontrolovat stav načtení a že mobile map package obsahuje mapy if (mapPackage.getLoadStatus() == LoadStatus.LOADED && !mapPackage.getMaps().isEmpty()) { // přidat mapu z mobile map package do MapView mMapView.setMap(mapPackage.getMaps().get( styl="color: #6897bb;">0<\/SPAN>));<\/SPAN> <\/SPAN>mMapView<\/SPAN>.setAttributionTextVisible(false<\/SPAN>);<\/SPAN> <\/SPAN>} else <\/SPAN>{\/\/ zaznamenejte problém, pokud se mobile map package nepodaří načíst<\/SPAN> <\/SPAN>Log.e<\/SPAN>(TAG<\/SPAN>, <\/SPAN>mapPackage<\/SPAN>.getLoadError().getMessage());<\/SPAN> <\/SPAN>} } });<\/SPAN> }<\/PRE>}<\/PRE>Chyba je:<\/P>04-15 12:00:43.653 7426-7426\/ com.mytest.mymap E\/AndroidRuntime: FATAL EXCEPTION: main<\/P> Proces: com. mytest<\/SPAN>.mymap, PID: 7426<\/P> java.lang.NullPointerException: Pokus o vyvolání virtuální metody 'void com.esri.arcgisruntime.mapping.view.MapView.setMap(com.esri.arcgisruntime.mapping.ArcGISMap)' na referenci null objektu<\/P> v com. mytest<\/SPAN>.mymap.MapActivity$1.run(MapActivity.java:77)<\/P> v android.os.Handler.handleCallback(Handler.java:739)<\/P> v android.os.Handler.dispatchMessage(Handler.java:95)<\/P> v android.os.Looper.loop(Looper.java:211)<\/P> v android.app.ActivityThread.main(ActivityThread.java:5389)<\/P> v java.lang.reflect.Method.invoke(Native Method)<\/P> v java.lang.reflect.Method.invoke(Method.java:372)<\/P> v com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)<\/P> v com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)<\/P> <\/P>Když je následující podmínka <\/SPAN>true, hodnota mapPackage není null<\/P> <\/P>if <\/SPAN>(mapPackage<\/SPAN>.getLoadStatus() == LoadStatus.LOADED <\/SPAN>&& !mapPackage<\/SPAN>.getMaps().isEmpty()) {\/20přidejte mapu z mobile map package do MapView<\/SPAN> <\/SPAN>mMapView<\/SPAN>.setMap(mapPackage<\/SPAN>.getMaps().get(0<\/SPAN>));<\/SPAN> <\/SPAN>mMapView<\/SPAN>.setAttributionTextVisible(false<\/SPAN>);<\/Span>}<\/PRE><\/BODY><\/HTML>
My mistake is copy code from mainactivity to mapactivity !!!
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
replace with
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map);
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.