appukrb
appukrb

Reputation: 1507

Why "HereMap" shows blank screen In Android?

I Follow this tutorial link for Nokia's Here Map integration. I got the output like this and error

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

enter image description here

My

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.heremap"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

<uses-library android:name="com.here.android" android:required="true" />
        <activity
            android:name="com.example.heremap.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <meta-data android:name="com.here.android.maps.appid"
android:value="XXXXXX"/>
<meta-data android:name="com.here.android.maps.apptoken"
android:value="XXXXXX"/>
    </application>

</manifest>

MainActivity.java

    package com.example.heremap;

import android.app.Activity;
import android.os.Bundle;

import com.here.android.mapping.FragmentInitListener;
import com.here.android.mapping.InitError;
import com.here.android.mapping.Map;
import com.here.android.mapping.MapAnimation;
import com.here.android.mapping.MapFactory;
import com.here.android.mapping.MapFragment;

public class MainActivity extends Activity {

    // map embedded in the map fragment
    private Map map = null;

    // map fragment embedded in this activity
    private MapFragment mapFragment = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Search for the map fragment to finish setup by calling init().
        mapFragment = (MapFragment) getFragmentManager().findFragmentById(
                R.id.mapfragment);
        mapFragment.init(new FragmentInitListener() {
            @Override
            public void onFragmentInitializationCompleted(InitError error) {
                if (error == InitError.NONE) {
                    // retrieve a reference of the map from the map fragment
                    map = mapFragment.getMap();
                    // Set the map center coordinate to the Vancouver region
                    map.setCenter(MapFactory.createGeoCoordinate(49.196261,
                            -123.004773, 0.0), MapAnimation.NONE);
                    // Set the map zoom level to the average between min and max
                    // (with no animation)
                    map.setZoomLevel((map.getMaxZoomLevel() +
                            map.getMinZoomLevel()) / 2);
                } else {
                    System.out.println("ERROR: Cannot initialize Map Fragment");
                }
            }
        });
    }
}

activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />
<fragment
    class="com.here.android.mapping.MapFragment"
    android:id="@+id/mapfragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</LinearLayout>

Error Log:

 02-26 06:06:47.192: E/AndroidRuntime(808): FATAL EXCEPTION: main 02-26
 06:06:47.192: E/AndroidRuntime(808): java.lang.IllegalAccessError:
 Class ref in pre-verified class resolved to unexpected implementation
 02-26 06:06:47.192: E/AndroidRuntime(808):     at
 com.example.heremap.MainActivity.onCreate(MainActivity.java:27) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 android.app.Activity.performCreate(Activity.java:5180) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
 02-26 06:06:47.192: E/AndroidRuntime(808):     at
 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2031)
 02-26 06:06:47.192: E/AndroidRuntime(808):     at
 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2092)
 02-26 06:06:47.192: E/AndroidRuntime(808):     at
 android.app.ActivityThread.access$600(ActivityThread.java:133) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1203)
 02-26 06:06:47.192: E/AndroidRuntime(808):     at
 android.os.Handler.dispatchMessage(Handler.java:99) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 android.os.Looper.loop(Looper.java:137) 02-26 06:06:47.192:
 E/AndroidRuntime(808):     at
 android.app.ActivityThread.main(ActivityThread.java:4807) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 java.lang.reflect.Method.invokeNative(Native Method) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 java.lang.reflect.Method.invoke(Method.java:511) 02-26 06:06:47.192:
 E/AndroidRuntime(808):     at
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
 02-26 06:06:47.192: E/AndroidRuntime(808):     at
 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559) 02-26
 06:06:47.192: E/AndroidRuntime(808):   at
 dalvik.system.NativeStart.main(Native Method)

After remove jar from order and export folder getting new error and updated log result

02-26 06:34:09.810: E/Trace(1266): error opening trace file: No such file or directory (2) 02-26 06:34:09.859: D/BYD_Flex(1266): getValue() name = @NOKIAFLEX@packageNeedData 02-26 06:34:09.859: D/BYD_Flex(1266): Couldn't find file variant/cfg/flex.xml 02-26 06:34:09.870: D/BYD_Flex(1266): getValue() readFlexFromXml = TypedValue{t=0x0/d=0x0} 02-26 06:34:09.870: D/BYD_Flex(1266): getValue() name = @NOKIAFLEX@setDataUsageReminder 02-26 06:34:09.870: D/BYD_Flex(1266): Couldn't find file variant/cfg/flex.xml 02-26 06:34:09.870: D/BYD_Flex(1266): getValue() readFlexFromXml = TypedValue{t=0x0/d=0x0} 02-26 06:34:10.249: I/Choreographer(1266): Skipped 44 frames! The application may be doing too much work on its main thread. 02-26 06:34:10.249: W/TextureView(1266): A TextureView or a subclass can only be used with hardware acceleration enabled. 02-26 06:34:10.459: I/Choreographer(1266): Skipped 53 frames! The application may be doing too much work on its main thread. 02-26 06:34:11.679: I/Choreographer(1266): Skipped 314 frames! The application may be doing too much work on its main thread. 02-26 06:34:30.191: I/Choreographer(1266): Skipped 38 frames! The application may be doing too much work on its main thread. 02-26 06:34:32.183: I/Choreographer(1266): Skipped 34 frames! The application may be doing too much work on its main thread. 02-26 06:35:00.068: I/Choreographer(1266): Skipped 35 frames! The application may be doing too much work on its main thread. 02-26 06:35:11.672: I/Choreographer(1266): Skipped 56 frames! The application may be doing too much work on its main thread.

Upvotes: 5

Views: 3943

Answers (3)

Kaushik
Kaushik

Reputation: 6162

Your minSdkVersion is 8 but from Official tutorial they told to set minSdkVersion to 11 see POINT NO 6 if u want to access that map in android-2.3 api level 10 then you have to use Support library

Upvotes: 1

Dr.Jukka
Dr.Jukka

Reputation: 2396

In general you get the black-control when the map control initialization fails, so you could check the initialization complete function, and see whether the error code would indicate what goes wrong, quite often it does tell the exact reason.

Upvotes: 0

appukrb
appukrb

Reputation: 1507

Hi friends atlast i find the error,the errror is in the emulator,you must create emulator with this configenter image description here

After that add two jar in libraries

  • com.here.android.sdk.jar
  • com.google.android.maps.sdk.jar

enter image description here

and get output like this

enter image description here

Upvotes: 7

Related Questions