Git Product home page Git Product logo

hellomap3d's People

Contributors

jaakla avatar mtehver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hellomap3d's Issues

AdvancedMap3d also MIT?

sorry just to be sure - the sourcecode released in this repository is all MIT licensed?

I ask because the page states it for 'Hello Map 3D' which could be read as only for HelloMap3D which is only one project within this repository

The application HelloMap3D's stopped unexpectedly.

This morning I've started my first Android project application experience with maps by using nutiteq api which seems to be useful in order to work with offline maps.
My first development was the "HelloMap3D" project by using eclipse-jee-juno-SR1, Android 4.0.3, and nutiteq-3dsdk-1.0.144pre.jar library
Unfortunately, I got always the same mistake whose prompt text is:

java.lang.NoClassDefFoundError: com.jhlabs.map.proj.ProjectionFactory
at com.nutiteq.projections.Projection
at com.nutiteq.projections.EPSG3857.
at net.ElectroSoftware.hellomap3d.Hellomap3dActivity.onCreate

I've been trying some different solutions such as importing javaproj-1.0.jar library on libs folder, and changing nutiteq library without any succes.

I've been meaning to ask you if you could tell me what can I do for solving this issue.
Beforehand, Thank you so much for helping.

ldpi, mdpi, hdpi markers

I'm trying to use default android resources scheme (ldpi / mdpi / hdpi pictures)
but marker ignore different sizes:
lmh_dpi_nutiteq

Opening HelloMap3D and AdvancedMap3D in Eclipse

I am trying to import HelloMap3D and AdvancedMap3D into eclipse but am having some trouble. I am getting errors. Could you provide some instruction or a guide on how to import it properly. You can see some of the errors below:

error1
error2

Android Studio build problem

AS 0.5.2 & 0.5.8: Failed to refresh Gradle project 'HelloMap3D'

Error:You are using an unsupported version of Gradle. Please use version 1.10.
Please point to a supported Gradle version in the project's Gradle settings or in the project's Gradle wrapper (if applicable.)

Any suggestions?

Fragment sample

Please add a sample with Fragments, where one fragment is map, and another data related to the visible map (like details of clicked object). Saving map state during orientation changes is quite specific there.

Application crash in device

Good wiki for start up. I have did all steps to use nutiteq map as described in wikki. In emulator it works. But when I installed it to device it gives me a "Force close error". I'm very stuck in that. I willing to use nutiteq map but I can't.

What I'm doing wrong?

Blank Map page for HelloWorld3D

I could not clone your git repository (publickey issue) - so I did following:

  1. copied the two lib jars (nutiteq-3d-sdk-2.1.0.jar and javaproj-1.0.6-noawt.jar) into my project libs folder
  2. added the sample Java code (in HelloMap3DActivity) to my project.
  3. defined the main.xml layout with com.nutiteq.MapView object
  4. Copied all the png files from your res/drawable folder to my res/drawable-hdpi etc folder.

It compiles and runs but produces a blank map - no tile in background or anything. There are no exception in LogCat. What cold be causing this behavior ?

If you need anymore information please let me know.

thanks,

-Sanjay

How to Build using MinGW & NDK r9

I am building application using Advanced layer features, such as GeoTIFF, MBTiles. I already imported all JNI files and libraries to my project. Indexing files went normal, clean all also normal. But when I am trying to build, it gives me error like this :

"Compile thumb : spatialite <= dxf_load_distinct.c
jni/libspatialite-4.1.0/src/dxf/dxf_load_distinct.c:54:20: fatal error: config.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/spatialite/libspatialite-4.1.0/src/dxf/dxf_load_distinct.o] Error 1

21:14:55 Build Finished (took 1m:5s.694ms)

I uses MinGW as default build. And when I looked into the src folder, it doesnt have file requested (config.h). Please helps

mapView.getConstraints().setMapBounds strange behaviour

Add 2 points on map:
min box (min lat / lon)
max box (max lat / lon)

final Projection p = new EPSG3857();
GeometryLayer l = new GeometryLayer(p);

final double[] bounds = new double[] { 56.877323, 65.283986, 57.403498, 65.974421 };
final MapPos minBox = p.fromWgs84(bounds[1], bounds[0]);
final MapPos maxBox = p.fromWgs84(bounds[3], bounds[2]);

l.add(new Point(minBox, new DefaultLabel("minBox"), PointStyle.builder().setColor(Color.BLUE).build(), null));
l.add(new Point(maxBox, new DefaultLabel("maxBox"), PointStyle.builder().setColor(Color.RED).build(), null));

mapView_.getLayers().addLayer(l);

Everything looks alright:
https://drive.google.com/file/d/0B7JpsJ2ZKswOM0ZOUEVYU2J6SWM/edit?usp=sharing

But when I try to create bounding box with that map points:

mapView_.getConstraints().setMapBounds(new Bounds(minBox.x, minBox.y, maxBox.x, maxBox.y));

something going wrong:
https://drive.google.com/file/d/0B7JpsJ2ZKswORVhSNWNRRUttWXc/edit?usp=sharing

touchhandlers NullPointerException

We got the following exception in google play:

java.lang.NullPointerException
at com.nutiteq.touchhandlers.a.g(ClickThread.java:284)
at com.nutiteq.touchhandlers.a.run(ClickThread.java:233)

Device: Galaxy S III (m0)

Nutiteq SDK 2.2.0

We have no further information.

MBTilesMapLayer out of memory

I making the offlinemap(m.mbtiles) by Mobile Atlas Creator(MOBAC).

in Android I use MBTilesMapLayer to load the offlinemap(m.mbtiles)

my configuartion code in MapActivity

new MBTilesMapLayer(new EPSG3857(), 3, 17, mapFilePath.hashCode(), mMapFilePath, this);

// Activate some mapview options to make it smoother - optional
mapView.getOptions().setPreloading(true);
mapView.getOptions().setSeamlessHorizontalPan(true);
mapView.getOptions().setTileFading(true);
mapView.getOptions().setKineticPanning(true);
mapView.getOptions().setDoubleClickZoomIn(true);
mapView.getOptions().setDualClickZoomOut(true);

// set sky bitmap - optional, default - white
mapView.getOptions().setSkyDrawMode(Options.DRAW_BITMAP);
mapView.getOptions().setSkyOffset(4.86f);
mapView.getOptions().setSkyBitmap(UnscaledBitmapLoader.decodeResource(getResources(), resUtil.getDrawableId("sky_small")));

// Map background, visible if no map tiles loaded - optional, default -
// white
mapView.getOptions().setBackgroundPlaneDrawMode(Options.DRAW_BITMAP);
mapView.getOptions().setBackgroundPlaneBitmap(UnscaledBitmapLoader.decodeResource(getResources(), resUtil.getDrawableId("background_plane")));
mapView.getOptions().setClearColor(Color.WHITE);

// configure texture caching - optional, suggested
mapView.getOptions().setTextureMemoryCacheSize(15 * 1024 * 1024);
mapView.getOptions().setCompressedMemoryCacheSize(8 * 1024 * 1024);
mapView.getOptions().setGeneralPanningMode(true);

Bug Desc

  1. first i enter the MapActivity to view the Offlinemap
  2. than I back to previous Activity
  3. After more than ten minutes OOM….

ExceptionCode

java.lang.OutOfMemoryError
    at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
    at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:426)
    at com.nutiteq.renderers.RasterCullThread.d(RasterCullThread.java:396)
    at com.nutiteq.renderers.RasterCullThread.run(RasterCullThread.java:132)

Help……

what need to do some free memory operation When the Activity destroy or the Fragment onDestroyView

GPS marker instead of a circle

Would it be possible to change the GPS circle to a marker? And how would I go about implementing it?

EDIT: I am using the HelloMap3D project.

Refresh problem

After compiling hellomap3d sample a6ccea8, I notice a refresh problem when zooming in too close to where the animated circle is drawn...I've tested it on Sony Xperia tipo dual.
Screenshot_2013-02-05-09-33-50

Add GPS Location Button

I would like to add a GPS Location button that when clicked will go to the current gps location on the map, and also show a Location Animation.

I have not been able to get it working. My layout and code is below:

mapkit_mapview.xml:

    <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/mainView"
      android:layout_width="fill_parent"
     android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.nutiteq.MapView
    android:id="@+id/mapView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

    <ZoomControls
    android:id="@+id/zoomcontrols"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true" />

    <ImageButton
     android:id="@+id/my_gps_location"
     android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
   android:src="@android:drawable/ic_menu_mylocation" >
  </ImageButton>
 </RelativeLayout>

MapActivity.java:

      public class MapActivity extends Activity {

   private MapView mapView;
   private LocationListener locationListener;
   private GeometryLayer locationLayer; 
   private Timer locationTimer;
       ImageButton myLocationButton;

       @Override
        public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

        //My location button stuff
          ImageButton myLocationButton = (ImageButton)     
          findViewById(R.id.my_gps_location);

         // 1. Create MapView layer for location circle
         locationLayer = new    
         GeometryLayer(mapView.getLayers().getBaseProjection());
         mapView.getComponents().layers.addLayer(locationLayer);

            // spinner in status bar, for progress indication
               requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

           setContentView(R.layout.mapkit_mapview);

             // enable logging for troubleshooting - optional
             Log.enableAll();
             Log.setTag("mapkit");

            //  Get the MapView from the Layout xml - mandatory
            mapView = (MapView) findViewById(R.id.mapView);

       // Optional, but very useful: restore map state during device rotation,
        // it is saved in onRetainNonConfigurationInstance() below
           Components retainObject = (Components)      
         getLastNonConfigurationInstance();
    if (retainObject != null) {
        // just restore configuration and update listener, skip other initializations
        mapView.setComponents(retainObject);
        return;
    } else {
        // 2. create and set MapView components - mandatory
        mapView.setComponents(new Components());
    }

    // Define base layer. Almost all online maps use EPSG3857 projection.
    // Use Offline Mapsforge Base Layer Map.

    //use built-in render theme

    XmlRenderTheme renderTheme = InternalRenderTheme.OSMARENDER;
    MapDatabase mapDatabase = new MapDatabase();
    mapDatabase.closeFile();

    String mapFilePath = Environment.getExternalStorageDirectory().getPath()+ "/newyork.map"; 

    File mapFile =  new File(Environment.getExternalStorageDirectory(), "/maps/newyork.map");

    FileOpenResult fileOpenResult = mapDatabase.openFile(mapFile);

    if (fileOpenResult.isSuccess()) {
        Log.debug("MapsforgeRasterDataSource: MapDatabase opened ok: " + mapFilePath);

    }

    MapsforgeRasterDataSource dataSource = new MapsforgeRasterDataSource(new EPSG3857(), 0, 20, mapFile, mapDatabase, renderTheme, this.getApplication());
    RasterLayer mapLayer = new RasterLayer(dataSource, 1044);
    mapView.getLayers().setBaseLayer(mapLayer);

    adjustMapDpi();

   // Create layer for location circle
    locationLayer = new GeometryLayer(mapView.getLayers().getBaseProjection());

    mapView.getOptions().setRasterTaskPoolSize(4);

      // zoom buttons using Android widgets, get the zoomcontrols that were defined
      ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
       // set zoomcontrols listeners to enable zooming
         zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
          @Override
    public void onClick(final View v) {
             mapView.zoomIn();
           }
       });
       zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
            @Override
    public void onClick(final View v) {
            mapView.zoomOut();
          }
});

// My Location Stuff
myLocationButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
     // 2. add GPS My Location functionality as a separate class
    final MyLocationCircle locationCircle = new MyLocationCircle(locationLayer);
    initGps(locationCircle);

    // 3. Run animation to update location circle
    locationTimer = new Timer();
    locationTimer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            locationCircle.update(mapView.getZoom());
        }
    }, 0, 50);
} });

}
         //Handle device orientation change
         @Override
        public Object onRetainNonConfigurationInstance() {
    Log.debug("onRetainNonConfigurationInstance");
    return this.mapView.getComponents();
}

   // it is suggested to start and stop mapping in Activity lifecycle methods, as following:

  @Override
  protected void onStart() {
      super.onStart();
      //Start the map - mandatory
      mapView.startMapping();

  }
      private void initGps(final MyLocationCircle locationCircle) {
      final Projection proj = mapView.getLayers().getBaseLayer().getProjection();

      locationListener = new LocationListener() {
          @Override
          public void onLocationChanged(Location location) {
               locationCircle.setLocation(proj, location);
               locationCircle.setVisible(true);

               // recenter automatically to GPS point
               // TODO in real app it can be annoying this way, add extra control that it is done only once
               mapView.setFocusPoint(mapView.getLayers().getBaseProjection().fromWgs84(location.getLongitude(), location.getLatitude()));
          }

          @Override
          public void onStatusChanged(String provider, int status, Bundle extras) {
              Log.debug("GPS onStatusChanged "+provider+" to "+status);
          }

          @Override
          public void onProviderEnabled(String provider) {
              Log.debug("GPS onProviderEnabled");
          }

          @Override
          public void onProviderDisabled(String provider) {
              Log.debug("GPS onProviderDisabled");
          }
      };

      LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
      List<String> providers = locationManager.getProviders(true);
      for(String provider : providers){
          locationManager.requestLocationUpdates(provider, 10000, 100, locationListener);
      }

}

@Override
  protected void onStop() {

      // Stop animation
      locationTimer.cancel();

      // Remove created layer
      mapView.getComponents().layers.removeLayer(locationLayer);

      // remove GPS support, otherwise we will leak memory
      deinitGps();

      mapView.stopMapping();
      super.onStop();
  }

     @Override
  protected void onDestroy() {
      super.onDestroy();
  }

  protected void deinitGps() {
      // remove listeners from location manager - otherwise we will leak memory
      LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
      locationManager.removeUpdates(locationListener);    
  }

  // adjust zooming to DPI, so texts on rasters will be not too small
  // useful for non-retina rasters, they would look like "digitally zoomed"
  private void adjustMapDpi() {
      DisplayMetrics metrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(metrics);
      float dpi = metrics.densityDpi;
      // following is equal to  -log2(dpi / DEFAULT_DPI)
      float adjustment = (float) - (Math.log(dpi / DisplayMetrics.DENSITY_HIGH) / Math.log(2));
      Log.debug("adjust DPI = "+dpi+" as zoom adjustment = "+adjustment);
      mapView.getOptions().setTileZoomLevelBias(adjustment / 2.0f);
  }

  }

Any help or insight would be greatly appreciated. I really would like to implement this.
Thanks in advance.

Regards,

Radagast

Fling isn't great

thanks for this awesome awesome library!

i'd like to know if there's a way to set the fling speed. at the moment, the fling decelerates so fast it's pretty much as if there was none...

thanks!

z-order between opengl drawings and geometry layer

hi!

so i followed the GPSAnimation tutorial and got the pulsing circle working just great. i also have a bitmap which i draw at the center of the pulsing circle as a Point in the Geometry Layer.

my problem is: the central bitmap is "below" the pulsing circle.

my questions:
1 how can i go about making the Geometry Layer go "above" the ?OpenGL Layer? ?
2 is the "Point in Geometry Layer approach" the recommended approach for drawing a bitmap overlay?

thanks!

kml as layer?

In https://github.com/nutiteq/hellomap3d/wiki/Ogr-layer kml format is supported, but I was not able to use it in my code.

I am able to show shapefile, but if I try to use kml file I obtain OgrLayer: unable to open dataset '/mnt/sdcard/lines.kml'
the file exists on the device and I am able to visualize it in google maps.

How can I use a kml file as a layer?

setPersistentCachePath -> SQLiteException: unable to open database file

code:
mapView.getOptions().setPersistentCachePath(getActivity().getDatabasePath("mapcache").getPath());

stacktrace:
android.database.sqlite.SQLiteException: unable to open database file
at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
at android.database.sqlite.SQLiteDatabase.(SQLiteDatabase.java:1849)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854)
at com.nutiteq.db.PersistentCacheDbHelper.(PersistentCacheDbHelper.java:34)
at com.nutiteq.cache.PersistentCache.setPath(PersistentCache.java:44)
at com.nutiteq.components.Options.setPersistentCachePath(Options.java:607)
at com.tgt.transport.MapFragment.setupMap(MapFragment.java:298)

app permissions:
android.permission.ACCESS_FINE_LOCATION
android.permission.INTERNET
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE

device:
Samsung Galaxy Ace

sdk:
nutiteq-3d-sdk-2.1.0

We have no further information

stopMapping -> SQLiteException

We got the following exception in google play:

android.database.sqlite.SQLiteException: unable to close due to unfinalised statements
at android.database.sqlite.SQLiteDatabase.dbclose(Native Method)
at android.database.sqlite.SQLiteDatabase.onAllReferencesReleased(SQLiteDatabase.java:323)
at android.database.sqlite.SQLiteDatabase.close(SQLiteDatabase.java:884)
at com.nutiteq.db.PersistentCacheDbHelper.closeDb(PersistentCacheDbHelper.java:103)
at com.nutiteq.cache.PersistentCache.closeDb(PersistentCache.java:134)
at com.nutiteq.MapView.stopMapping(MapView.java:212)
at com.tgt.transport.ui.MapFragment.onStop(MapFragment.java:724)
at android.support.v4.app.Fragment.performStop(Fragment.java:1651)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:979)
at android.support.v4.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1201)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:639)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)

Device: n900

Nutiteq SDK 2.2.0

We know that n900 it's actually not 'native' android device. It's error device specific or not?

MarkerLayer and GeometryLayer onclick listener.

Hi Dev Team... I am having problems with the onClickListener if I combine MarkerLayer and GeometryLayer. Even though I clicked on the marker I created, Still the polygon is selected....
Tried adding geo layer first then marker layer and vice versa and still getting the same results....

    mapView.getLayers().addLayer(geomLayer);
    mapView.getLayers().addLayer(markerLayer);

GeometryLayer is always selected even when I click anywhere on the map....

capture

Any suggestions?

flickering tiles #2

User with Samsung Galaxy Duos GT-i8552 have similar issue like #35

Base map layer (mbtiles / tms) not visible (white background), vector elements are working.

processor: Qualcomm Snapdragon 200 MSM8225Q / ARM Cortex-A5

nutiteq sdk 2.3.1
android 4.1.2

Some tiles in lower latitude are not loaded in Xamarin version

Hello,

I try to use Xamarin component version of Nutiteq SDK (v1.0.1), but in medium - big zoom level, SDK fails to load lower latutude tiles.

I sent sample:

screenshot_2014-05-11-11-21-01
screenshot_2014-05-11-11-19-58

How can I avoid this?

Application is sample application which comes with Component, and tested device is HTC J /w Android 4.0.3.

Regards,
Ko-hei

MBTilesMapLayer wrong projection

If my tiles stored in database with projection EPSG:4326 and I create MBTilesMapLayer with following code:

String dbPath = Environment.getExternalStorageDirectory().getPath() + "/control-room_8_14_4326.mbtiles";
MBTilesMapLayer mapLayer = new MBTilesMapLayer(new EPSG3857(), 10, 14, 0, dbPath, getActivity());

everything alright, it's working. Despite the fact that the projections do not match. But if my tiles in EPSG:3857 projection nothing work.
The same tiles (with EPSG:3857 projection) work fine through TMSMapLayer with projection EPSG:3857:

TMSMapLayer mapLayer = new TMSMapLayer(new EPSG3857(), 10, 14, 0, "http://mysitename/map/", "/", ".png");

here https://groups.google.com/group/nutiteq-dev/attach/511df3e73c49a176/mbtiles.tar?part=4&authuser=0 mbtiles in 3857 and 4326 projections:
control-room_8_14_3857.mbtiles
control-room_8_14_4326.mbtiles

Some bug in the MBTilesMapLayer?
I'm using nutiteq-3dsdk-1.0.0R on Android 4.0.3

Strange map touch behaves in ScrollView container

I have mad a demo app. Yes, it works all right. But when I put map into ScrollView container then it behaves a strange way like when I touch map for navigate, it is unexpectedly zooming and all that.
It is only happen when I put map into scrollview container. In another view it works all right.
I want to use it with scrollview container but I can't because of this issue.

Only show mbtiles without map?

Hello.
I want to use nutiteq to show images in mbtiles without using a map as base layer.
How to control of the map display area.

add onZoomChanged callback to MapListener

For some purposes I need to know when user somehow (zoom buttons, touch gesture) changes zoom on the map. Getting these changes in 'onMapMoved' or 'onBackgroundTasksStarted' is not clear way to do that.

"flickering" effect

When I moving map sometimes map start flickering and then it happens again and again until application will be not restarted.
device-2013-03-01-183547
device-2013-03-01-183526
This happens in all examples and market apps too.

I'm using android 4.0.3 on HTC One V

jvm crash

After updating to a new version of sdk (nutiteq-3dsdk-build341-232RC) we get strange errors, like that:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'htc_europe/htc_runnymede/runnymede:4.4.2/KOT49H/87995:user/release-keys'
Revision: '2'
pid: 5137, tid: 5137, name: m.tgt.transport >>> com.tgt.transport <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
r0 fffffffc r1 be910370 r2 00000010 r3 ffffffff
r4 01db0788 r5 00000001 r6 01db079c r7 000000fc
r8 00000000 r9 00000000 sl 00000000 fp ffffffff
ip 00000000 sp be910330 lr 4013fb75 pc 400b06a8 cpsr 20010010
d0 408000003d56d531 d1 000000003d56d531
d2 0000000000000006 d3 0000000000000041
d4 0000000000000000 d5 0000000000000000
d6 0000000000000000 d7 0000000000000000
d8 0000000000000000 d9 7ff800003f000000
d10 3fe0000000000000 d11 3ff3acc09f912522
d12 415deb3851a0ebb6 d13 3fe921fb54442d18
d14 0000000000000000 d15 0000000000000000
d16 4022ead9117221ed d17 40565ddf80000000
d18 0018001700150016 d19 0019001a001a0019
d20 3f80000000000000 d21 0000000000000000
d22 0301030203020301 d23 0306030503040303
d24 001e001d001c001b d25 0020001f001d001e
d26 0000000000000000 d27 0000000000000000
d28 031e031d031c031b d29 0320031f031d031e
d30 0020002000200020 d31 0000000000000000
scr 80000013

backtrace:
#00 pc 000296a8 /system/lib/libc.so (epoll_wait+12)
#01 pc 00012b71 /system/lib/libutils.so (android::Looper::pollInner(int)+100)
#02 pc 00012e05 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+40)
#03 pc 00081c5d /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+24)
#04 pc 0001f4ec /system/lib/libdvm.so (dvmPlatformInvoke+116)
#05 pc 0005e561 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+172)
#06 pc 00028960 /system/lib/libdvm.so
#07 pc 000304b8 /system/lib/libdvm.so (dvmMterpStd(Thread*)+68)
#08 pc 0002d1e0 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#09 pc 000790ad /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+884)
#10 pc 00085e51 /system/lib/libdvm.so
#11 pc 00028960 /system/lib/libdvm.so
#12 pc 000304b8 /system/lib/libdvm.so (dvmMterpStd(Thread*)+68)
#13 pc 0002d1e0 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#14 pc 000795e3 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+490)
#15 pc 00055e33 /system/lib/libdvm.so
#16 pc 0005515b /system/lib/libandroid_runtime.so
#17 pc 00055fef /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+278)
#18 pc 00000e33 /system/bin/app_process
#19 pc 0000e6a3 /system/lib/libc.so (__libc_init+58)
#20 pc 00000f98 /system/bin/app_process

code around pc:
400b0688 e1a0700c e3700a01 912fff1e e2600000 
400b0698 ea0093ef e1a0c007 e3a070fc ef000000 
400b06a8 e1a0700c e3700a01 912fff1e e2600000 
400b06b8 ea0093e7 e1a0c007 e3a07f4f ef000000 
400b06c8 e1a0700c e3700a01 912fff1e e2600000 
400b06d8 ea0093df e1a0c007 e59f7014 ef000000 
400b06e8 e1a0700c e3700a01 912fff1e e2600000 
400b06f8 ea0093d7 0000013d e1a0c007 e59f7014 
400b0708 ef000000 e1a0700c e3700a01 912fff1e 
400b0718 e2600000 ea0093ce 0000013e e1a0c007 
400b0728 e3a070a8 ef000000 e1a0700c e3700a01 
400b0738 912fff1e e2600000 ea0093c5 e1a0c007 
400b0748 e3a07f59 ef000000 e1a0700c e3700a01 
400b0758 912fff1e e2600000 ea0093bd e1a0c007 
400b0768 e59f7014 ef000000 e1a0700c e3700a01 
400b0778 912fff1e e2600000 ea0093b5 000f0005 

code around lr:
4013fb54 f1049202 46100614 fcc0f7fe a910462b 
4013fb64 65e72210 6b202501 502df884 e8daf7f8 
4013fb74 702df884 46304681 e820f7f8 f2c045b9 
4013fb84 bf08810f 0802f06f 808cf040 f04f6a20 
4013fb94 f06f32ff e9c44300 28002318 ad08d046 
4013fba4 f104af0a f04f0b18 e0310a01 3008f8d9 
4013fbb4 0801f06f b12b602b f852681a 44180c0c 
4013fbc4 f9c4f7fb 300cf8d9 22012100 603b4658 
4013fbd4 fc6ef7fe a02cf884 f7f74630 6828eff6 
4013fbe4 68024639 47986893 4629682b 6818b12b 
4013fbf4 0c0cf850 f7fb4418 4630f9ff efdef7f7 
4013fc04 f04f6a21 f8840c00 2900c02c 80aff000 
4013fc14 f7fd2001 f8d4faa5 e9d9901c 42902300 
4013fc24 0e03eb71 dac14629 2318e9c4 f7f74630 
4013fc34 6d26efcc 2500b396 b008f8dd e003462f 
4013fc44 35016d21 d229428d 46294658 fa62f7fe 

Devices: HTC Sensation XL with Beats - Android 4.4.2,
LG G2 (g2) - Android 4.4.2,
Galaxy S2 Plus (s2ve) - Android 4.4.2,
Nexus 7 (deb) - Android 4.4.2

Seems like it happens when MapView using mapsforge layer as base layer and hardware acceleration isn't available on that device. But this issue may not be related with map sdk.

Unfortunately we don't have listed devices to check issue.

Wiki guide for SDK 1.x upgrade

Show old->new for following sample snippets.

//  CODE SNIPPETS THAT USE THE MGMAPS LIBRARY 

    //  Initilize the map
    private void initializeMap() {
        this.theMap = new BasicMapComponent(this.mgmapsLicenseKey, 
                                            new AppContext(this), 
                                            1, 
                                            1, 
                                            new WgsPoint(0, 0), 
                                            12);  
        this.theMap.setMap(new CloudMade(this.cloudMadeApiKey, "", 256, 1)); 
        this.theMap.setPanningStrategy(new ThreadDrivenPanning()); 
        this.theMap.setControlKeysHandler(new AndroidKeysHandler());
        this.theMap.setTouchClickTolerance(200);
        this.theMap.setNetworkCache(this.getCachingChain());
        this.theMap.startMapping();
    }


    //  Three TYPES OF MAPS
    public void setMapOnLine() {
        this.getTheMap().setMap(new CloudMade(this.cloudMadeApiKey, "", 256, 1)); 
    }
    public void setMapOnBoard() {
        this.getTheMap().setMap(new JaredOpenStreetMap(new StringCopyright("CC-By-SA by OpenStreetMap"), "/res/raw/", 256, 12, 15));
    }
    //  Additionale map for the new app
    public void setMapTerrain() {
        this.getTheMap().setMap(new GoogleStaticMap("dummy", 256, 0, 19, GoogleStaticMap.IMAGE_FORMAT_PNG_32, GoogleStaticMap.MAP_TYPE_TERRAIN, true)); 
    }


    //  Initialize chache for the MAP CACHING
    private void initializeCache (){
        if(cacheDir.exists()){
            StatFs statFs = new StatFs(cacheDir.getAbsolutePath());
            int freespace = statFs.getAvailableBlocks() * statFs.getBlockSize();
            Log.debug("Free space of " + cacheDir.getAbsolutePath() + " is " + freespace);
            int cacheSizeWish = 1000 * 1024 * 1024; // 1 GB

            // do not take more than 50% of free space for caches
            int cacheSize = (cacheSizeWish * 2) >= freespace ? (int) freespace / 2  : cacheSizeWish;
            Log.debug("File cache set to  " + cacheSize);
            final AndroidFileSystemCache fileSystemCache = new AndroidFileSystemCache(this, "network_cache", cacheDir, cacheSize);
            this.setCachingChain(new CachingChain(new Cache[] {
//                  memoryCache, 
                    fileSystemCache }));
        }else{
            this.setCachingChain(new CachingChain(new Cache[] {memoryCache}));
        }
    }


    //  This is the class used for the ROUTING
    public class RoutingStarter implements Runnable {
        private final ActivityMapSinglePoi nutiteqRouteWaiter;
        public RoutingStarter(final ActivityMapSinglePoi activityMapSinglePoi) {
            this.nutiteqRouteWaiter = activityMapSinglePoi;
        }

        public void run() {
            new CloudMadeDirections(nutiteqRouteWaiter,
                                    nutiteqRouteWaiter.getStartCoordinates(), 
                                    nutiteqRouteWaiter.getEndCoordinates(), 
                                    "Car",
                                    CloudMadeDirections.ROUTE_TYPE_MODIFIER_SHORTEST ,
                                    "92dccbb97dfc4c298c2405f6ceda0c40",
                                    ""
                                    ).execute();
        }
    }


    //  This is for USER POSITION
    private BasicMapComponent mapComponent;
    private Place userPlace;
    public void onLocationChanged(Location location) {
        // Called when a new location is found by the network location provider.
        // makeUseOfNewLocation(location);
        this.mapComponent.moveMap(location.getLongitude(), location.getLatitude());
        this.mapComponent.removePlace(userPlace);
        this.userPlace = new Place(1, "Tu sei qui!", iconYouAreHere, location.getLongitude(), location.getLatitude());
        mapComponent.addPlace(userPlace);
        ((ApplicationContext)context.getApplicationContext()).setUserPosition(location);
    }


    //  ...and at the end a snippet of an ACTIVITY WITH A MAP, including POINTS and LINES
    import com.nutiteq.BasicMapComponent;
    import com.nutiteq.android.MapView;
    import com.nutiteq.components.OnMapElement;
    import com.nutiteq.components.Place;
    import com.nutiteq.components.WgsPoint;
    import com.nutiteq.listeners.OnMapElementListener;
    import com.nutiteq.wrappers.Image;

    public class ActivityMap extends Activity {

        private ManagerData md;
        private ApplicationContext appContext;
        private Poi[] poisToView;
        private Place[] poiPlaces;
        private Integer nPoiToViewOnMap;
        private MapView mapView; 
        private BasicMapComponent mapComponent;
        private ZoomControls zoomControls;
        private Image poiHere;
        private WgsPoint position;
        private MapState mapState;
        private OnMapElementListener OMElementListener;
        private ActivityMapSetOfPoi context;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            //  ...
            OMElementListener = new OnMapElementListener() {
                @Override
                public void elementLeft(OnMapElement element) {} 

                @Override
                public void elementEntered(OnMapElement element) {}

                @Override
                public void elementClicked(OnMapElement element) {
                    if (element instanceof Place) {
                        Place p = (Place) element;
                        Poi poiClicked = poisToView[p.getId()];
                        appContext.setIdPoiSelected(poiClicked.getId());
                        context.stopMap();
                        Intent myIntent = new Intent(ActivityMapSetOfPoi.this, ActivityPoiCard.class);
                        ActivityMapSetOfPoi.this.startActivityForResult(myIntent, 1);
                    }
                }
            };
        super.onCreate(savedInstanceState);
            //  ...
            poisToView = appContext.getPoisFound();
            nPoiToViewOnMap = poisToView.length;
            poiPlaces = new Place[nPoiToViewOnMap];
            //  ...
            position = new WgsPoint(((xMax+xMin)/2), ((yMax+yMin)/2));

            if (appContext.getMapSetOfPoiState() == null) {
                mapState.setMiddlePoint(position);
            }
            this.startMap();

            mapView = new MapView(appContext, mapComponent);
            //Add ZoomControls 
            zoomControls = new ZoomControls(appContext); 
            zoomControls.setOnZoomInClickListener(new View.OnClickListener() { 
                public void onClick(final View v) { 
                    mapComponent.zoomIn(); 
                } 
            }); 
            zoomControls.setOnZoomOutClickListener(new View.OnClickListener() { 
                public void onClick(final View v) {
                    mapComponent.zoomOut(); 
                } 
            });     

            RelativeLayout relativeLayout = (RelativeLayout) this.findViewById(R.id.map_container); 
            relativeLayout.addView(mapView);

            //Add Zoom controls View to the RelativeLayout 
            final RelativeLayout.LayoutParams zoomControlsLayoutParams = new RelativeLayout.LayoutParams( 
                    RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
            zoomControlsLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
            zoomControlsLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 
            relativeLayout.addView(zoomControls, zoomControlsLayoutParams);

        }

        private void startMap() {
            mapComponent = appContext.getTheMap();
    //      mapComponent.setMiddlePoint(mapState.getMiddlePoint());
            mapComponent.moveMap(mapState.getMiddlePoint());
            mapComponent.setZoom(mapState.getZoomLevel());
            if (poiPlaces.length > 0)
                mapComponent.addPlaces(poiPlaces);
            mapComponent.setOnMapElementListener(OMElementListener);
        }

        public void stopMap() {
            mapComponent.setOnMapElementListener(null);
            mapComponent.removeAllPlaces();
            mapState.setZoomLevel(mapComponent.getZoom());
            mapState.setMiddlePoint(mapComponent.getMiddlePoint());
            appContext.setMapSetOfPoiState(mapState);
            mapComponent = null;
        }

        private Place getPlaceFromPoi(Poi poi, int idPoi) {
            try { 
                poiHere = Image.createImage("/res/drawable/"+md.getCategoryMapIconFilenameByCode(poi.getCategory().getName())+".png"); 
            } catch (IOException e) {
                e.printStackTrace();
            }
            return new Place(idPoi, poi.getName().getText(appContext.getLanguage()), poiHere, poi.getGeom());
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.menu_principale_mappa, menu);
            return true;
        } 

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.item_map_on_line:     appContext.setMapOnLine();
                                        break;
                case R.id.item_map_on_board:    appContext.setMapOnBoard();
                                        break;
            }
            return true;
        }

        @Override
            protected void onDestroy() { 
                super.onDestroy();
                this.stopMap();
                appContext.setMapSetOfPoiState(null);
                if (mapView != null) { 
                    mapView.clean();
                    mapView = null;
                }
        }

Route Draw

I was just checking the route draw from the new version. But it seems we cannot draw route as it was done in previous version.

Can we draw route by using nutiteq 3D latest version.?

javadoc "Class PackagedRasterDataSource" wrong information

Quoting from http://nutiteq.github.io/hellomap3d/javadoc/:
"A raster data source that uses the map bundled in the /res/raw/ folder as a source. The request are generated based on resourceTemplate that may contain various tags. The following tags are supported: zoom, x, y, xflipped, yflipped, quadkey For example if, if resourceTemplate = "t{zoom}{x}{y}.png", then the result (for root tile) will be "/res/raw/t0_0_0.png". "

Actually the resourceTemplate should not include the file type ".png". This would cause the tiles to not be found.

Correct javadoc:
"A raster data source that uses the map bundled in the /res/raw/ folder as a source. The request are generated based on resourceTemplate that may contain various tags. The following tags are supported: zoom, x, y, xflipped, yflipped, quadkey For example if, if resourceTemplate = "t{zoom}{x}{y}", then the result (for root tile) will be "/res/raw/t0_0_0.png". "

MapView.onTouchEvent -> NullPointerException

We got the following exception in google play:

java.lang.NullPointerException
at com.nutiteq.MapView.onTouchEvent(MapView.java:227)
at android.view.View.dispatchTouchEvent(View.java:7337)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2386)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2386)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2386)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2159)
at android.view.ViewGroup.cancelTouchTarget(ViewGroup.java:2326)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3884)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:3866)
at android.view.ViewGroup.removeView(ViewGroup.java:3798)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1025)
at android.support.v4.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1201)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:639)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)

Devices: Galaxy S III (m0), Galaxy Tab 7.0 Plus (GT-P6200), e1809c_v75_jdt1

Nutiteq SDK 2.2.1

Map bounds bigger than available map

Hi,

I'm using an mbitles file as the tile source and setting the map bounds as constraints.
The end result is this

screenshot_2014-03-20-12-57-35

I set the bounds as smaller than the area covered by the tiles.
Also, available map shrinks as I zoom in.

License Confusion

The demo itself is under MIT. That is clear. But some statements in the license section are a bit confusing:

  • "There are currently following options" -> what does this mean? Can I choose the license? And does this license apply to map data only?
  • "All these libraries are free and open source, and non-viral (GPL or LGPL software is not used)." -> what does it mean "not used". In fact lots of libraries are LGPL!?

Importing .mbfiles extension files for Android with Nutiteq

Hello.
I've created a thread on Stackoverflow and I've been in contact with JaakL as he's trying to solve my problem.

Link for the stackoverflow thread : http://stackoverflow.com/questions/23861670/importing-mbfiles-extension-files-for-android-with-nutiteq/23864784?noredirect=1#comment37001857_23864784

Dropbox link with the project code : https://www.dropbox.com/s/9io1o6yrjfcbi1e/MyApplication5.zip

I'm also sending a video for each problem I stated on stackoverflow.

A video showing I can never see the whole map, I don't know why but some parts are cut out.
https://www.dropbox.com/s/s7xdxjcui05kf6k/VID_20140603_202033502.mp4

A video showing that sometimes when I drag the map trying to check certain parts of it the whole map crashes and all I get is a blank screen.
https://www.dropbox.com/s/n9hryjrb6r3zk9f/VID_20140603_202440897.mp4

Thank you so much for all of your help so far.

NMLLayer not visible in semi-transparent Polygon3D

I have created a map with a Polygon3DLayer and a NMLModelLayer, which contains a arrow for the GPS position.

I thought i would create the Polygons semi-transparent (setColor in Builder) because i want to see the arrow even if it is inside a building. Unfortunately the Polygons are semi-transparent, but the NML model is invisible. I am using 2.3.0 and the compass and polygon3d example code as template.

Trouble with MapView

I recently checked out the latest version of the HelloMap3D example; however, when I try to run it, the log shows:

"VFY: unable to find class referenced in signature (Lcom/nutiteq/MapView;)"

My project appears to correctly reference all the necessary libraries as it does successfully build. Is there a step that I am missing?

Any help would be appreciated. Thanks!

Here is the entire log for reference:

08-08 08:25:40.028: W/dalvikvm(28321): VFY: unable to find class referenced in signature (Lcom/nutiteq/MapView;)
08-08 08:25:40.028: I/dalvikvm(28321): Could not find method com.nutiteq.MapView.getLayers, referenced from method com.nutiteq.hellomap.HelloMap3DActivity.initGps
08-08 08:25:40.028: W/dalvikvm(28321): VFY: unable to resolve virtual method 13: Lcom/nutiteq/MapView;.getLayers ()Lcom/nutiteq/layers/Layers;
08-08 08:25:40.028: D/dalvikvm(28321): VFY: replacing opcode 0x6e at 0x0002
08-08 08:25:40.036: I/dalvikvm(28321): Could not find method com.nutiteq.log.Log.enableAll, referenced from method com.nutiteq.hellomap.HelloMap3DActivity.onCreate
08-08 08:25:40.036: W/dalvikvm(28321): VFY: unable to resolve static method 85: Lcom/nutiteq/log/Log;.enableAll ()V
08-08 08:25:40.036: D/dalvikvm(28321): VFY: replacing opcode 0x71 at 0x0011
08-08 08:25:40.036: I/dalvikvm(28321): Could not find method com.nutiteq.log.Log.debug, referenced from method com.nutiteq.hellomap.HelloMap3DActivity.onRetainNonConfigurationInstance
08-08 08:25:40.036: W/dalvikvm(28321): VFY: unable to resolve static method 84: Lcom/nutiteq/log/Log;.debug (Ljava/lang/String;)V
08-08 08:25:40.036: D/dalvikvm(28321): VFY: replacing opcode 0x71 at 0x0002
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x0016 at 0x64 in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x0057 at 0x6e in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x005b at 0x7b in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x0062 at 0x1dc in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x0066 at 0x1f7 in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x0029 at 0x1fd in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:40.044: W/dalvikvm(28321): Unable to resolve superclass of Lcom/nutiteq/hellomap/MyLocationMapEventListener; (45)
08-08 08:25:40.044: W/dalvikvm(28321): Link of class 'Lcom/nutiteq/hellomap/MyLocationMapEventListener;' failed
08-08 08:25:40.044: D/dalvikvm(28321): DexOpt: unable to opt direct call 0x0040 at 0x216 in Lcom/nutiteq/hellomap/HelloMap3DActivity;.onCreate
08-08 08:25:41.310: D/dalvikvm(28321): threadid=1: still suspended after undo (sc=1 dc=1)
08-08 08:26:01.036: D/AndroidRuntime(28321): Shutting down VM
08-08 08:26:01.044: W/dalvikvm(28321): threadid=1: thread exiting with uncaught exception (group=0x41334930)
08-08 08:26:01.193: E/AndroidRuntime(28321): FATAL EXCEPTION: main
08-08 08:26:01.193: E/AndroidRuntime(28321): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nutiteq.hellomap/com.nutiteq.hellomap.HelloMap3DActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.nutiteq.MapView
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.os.Handler.dispatchMessage(Handler.java:99)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.os.Looper.loop(Looper.java:137)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.ActivityThread.main(ActivityThread.java:5041)
08-08 08:26:01.193: E/AndroidRuntime(28321): at java.lang.reflect.Method.invokeNative(Native Method)
08-08 08:26:01.193: E/AndroidRuntime(28321): at java.lang.reflect.Method.invoke(Method.java:511)
08-08 08:26:01.193: E/AndroidRuntime(28321): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-08 08:26:01.193: E/AndroidRuntime(28321): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-08 08:26:01.193: E/AndroidRuntime(28321): at dalvik.system.NativeStart.main(Native Method)
08-08 08:26:01.193: E/AndroidRuntime(28321): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.nutiteq.MapView
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
08-08 08:26:01.193: E/AndroidRuntime(28321): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.Activity.setContentView(Activity.java:1881)
08-08 08:26:01.193: E/AndroidRuntime(28321): at com.nutiteq.hellomap.HelloMap3DActivity.onCreate(HelloMap3DActivity.java:42)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.Activity.performCreate(Activity.java:5104)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-08 08:26:01.193: E/AndroidRuntime(28321): ... 11 more
08-08 08:26:01.193: E/AndroidRuntime(28321): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.nutiteq.MapView" on path: /data/app/com.nutiteq.hellomap-2.apk
08-08 08:26:01.193: E/AndroidRuntime(28321): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
08-08 08:26:01.193: E/AndroidRuntime(28321): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
08-08 08:26:01.193: E/AndroidRuntime(28321): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.createView(LayoutInflater.java:552)
08-08 08:26:01.193: E/AndroidRuntime(28321): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
08-08 08:26:01.193: E/AndroidRuntime(28321): ... 21 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.