java.lang.IllegalAccessError: Class ref in pre-verified class resolved
to unexpected implementation
我的
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)
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.