¿Por qué “HereMap” muestra una pantalla en blanco en Android?
Pregunta
Sigo este tutorial enlace para la integración Here Map de Nokia.Obtuve el resultado como este y error.
java.lang.IllegalAccessError:Clase Ref en la clase pre-verificada resuelta a una implementación inesperada
Mi
manifiesto.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>
Actividad principal.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");
}
}
});
}
}
actividad_principal.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>
Registro de errores:
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)
Después de retirar el frasco de ordenar y exportar carpeta obteniendo un nuevo error y un resultado de registro actualizado
02-26 06:34:09.810:E/Traza(1266):error al abrir el archivo de seguimiento:No hay dicho archivo o directorio (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):No se pudo encontrar la variante de archivo/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() nombre = @NOKIAFLEX@setDataUsageReminder 02-26 06:34:09.870:D/BYD_Flex(1266):No se pudo encontrar la variante de archivo/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:Yo/Coreógrafo(1266):¡Se saltó 44 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.02-26 06:34:10.249:Con Vista de textura (1266):Una vista textureview o una subclase solo se puede usar con aceleración de hardware habilitada.02-26 06: 34: 10.459:Yo/Coreógrafo(1266):¡Se saltó 53 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.02-26 06: 34: 11.679:Yo/Coreógrafo(1266):¡Se saltó 314 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.02-26 06: 34: 30.191:Yo/Coreógrafo(1266):¡Se saltó 38 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.02-26 06: 34: 32.183:Yo/Coreógrafo(1266):¡Se saltó 34 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.02-26 06: 35: 00.068:Yo/Coreógrafo(1266):¡Se saltó 35 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.02-26 06: 35: 11.672:Yo/Coreógrafo(1266):¡Se saltó 56 fotogramas!La aplicación puede estar haciendo demasiado trabajo en su hilo principal.
Solución
Hola amigos ATLAST Encuentro el error, el Errror está en el emulador, debe crear emulador con esta configuración
Después de eso, agregue dos tarro en bibliotecas
- com.here.android.sdk.jar
- com.google.android.maps.sdk.jar
y obtenga de salida como este
Otros consejos
Usted está recibiendo este error debido a la referencia de la biblioteca de terceros agregada dos veces.Ha agregado la ruta de la solicitud en la ruta de construcción del proyecto.para que la referencia de la biblioteca se agregue automáticamente al proyecto ". Retire cualquier referencia de la biblioteca en el proyecto de prueba en Propiedades-> Android. Desmarque los frascos de la pestaña" Orden y exportación "en la ruta de construcción Java del proyecto en Eclipse. Pero deja que se agreguen en" Bibliotecas"Tab. Haga clic en Aceptar, Limpie los proyectos y construya ahora. Funciona.
por error
error opening trace file: No such file or directory (2)
Vuelva a crear el dispositivo virtual de Android, está seguro de poner en un valor para el tamaño de la tarjeta SD (utilicé 200 MIB).
Su minSdkVersion is 8
Pero de donde tutorial oficial me dijeron que estableciera minSdkVersion to 11
ver PUNTO N° 6 si quieres acceder a ese mapa en android-2.3 api level 10
entonces tienes que usar Biblioteca de soporte
En general, obtiene el control negro cuando la inicialización del control del mapa falla, por lo que podría verificar la función completa de la inicialización y ver si el código de error indicaría lo que sale mal, a menudo, a menudo cuenta la razón exacta.