2010-07-25 6 views
12

Estoy empezando a usar Eclipse para aplicaciones de Android. He instalado Eclipse 3.5.2 y Java 5 AVD es Android 2.1 API 7La aplicación no especifica el nivel de API

Mi programa Hello Hello inicial funcionaba bien pero no se ejecutará nuevamente.

consiguiendo el error siguiente:

[2010-07-25 09:47:31 - HelloAndroid] WARNING: Application does not specify an API level requirement!
[2010-07-25 09:47:31 - HelloAndroid] Device API version is 7 (Android 2.1-update1)

han buscado los foros, pero sólo pudo encontrar un refernece manifestar archivo que se creó Seguro siguiente:

<uses-sdk android:minSdkVersion="3" /> 

mi archivo de manifiesto no contiene esa línea :

<?xml version="1.0" encoding="utf-8" ?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandriod" android:versionCode="1" android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".HelloAndroid" android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
    </manifest> 

He comprobado el adv mgr y está configurado en 7 En Eclipse fui a propiedades -> Android y la pusieron a 7

conseguir mismas advertencias

+0

Solo como un heads-up. Eclipse no generará esa línea solo porque usted cree un AVD en el administrador de SDK. Establecer la API de destino a través de propiedades es el movimiento correcto, pero tampoco generará la línea por usted. Solo se genera si especificó el AVD en la creación del proyecto. No puedo encontrar de todos modos para especificar tales al importar un proyecto existente, solo a través del proyecto nuevo – celem

Respuesta

35

Bueno, si Eclipse es, por cualquier razón, no generar esa línea para ti, por todos los medios que puedes añadir tú mismo.

Añadir la línea:
<uses-sdk android:minSdkVersion="3" />

a su manifiesto, justo antes de la etiqueta de manifiesto que termina.

+0

También asegúrese de leer exactamente cuál es el impacto de la configuración de las diversas etiquetas '': http://developer.android.com/guide/ publishing/versioning.html # minsdkversion –

10

También debe incluir

<uses-sdk android:minSdkVersion="7" /> 

en el archivo de manifiesto, si no está ya allí. No está claro por su pregunta, pero parece que no lo es.

Para futuras referencias acerca de los niveles de API, ver this page

+0

Gracias por su contribución. Para cualquiera que lea esto pongo los dos comandos de src manualmente y a Eclipse no le gusta la entrada manual. Dijo que no estaba sincronizado. Pero pude actualizar el manifiesto dentro de Eclipse. Se ejecuta sin errores ahora pero avd solo aparece con fecha y hora. Lo averiguaré pero al menos no hay errores. Gracias – Trent

7

Parece que hay un error en el Android SDK Tools revisión 16 que requiere el orden correcto de las etiquetas uses-sdk. Si está utilizando tanto targetSdkVersion y minSdkVersion, ordenarlas de la siguiente manera:

<uses-sdk android:targetSdkVersion="10" /> <!-- before minSdkVersion --> 
<uses-sdk android:minSdkVersion="7" />  <!-- after targetSdkVersion --> 

Invertir el orden dará el mensaje de advertencia y aparecerá la ventana de selección de dispositivos. Por tanto, recomiendo escribiendo esto en una sola línea:

<uses-sdk android:targetSdkVersion="10" android:minSdkVersion="7" /> 
+0

Confirmado. Extraño de hecho. –

+0

He abierto [número 27320] (http://code.google.com/p/android/issues/detail?id=27320). –

+0

¡El problema se ha resuelto con una nueva advertencia de Pelusa! ¡Hurra! –

2

El manifiesto sólo debe contener un solo elemento, que es un error usar más de una vez.

En ADT 17, tenemos una nueva advertencia de pelusa, que detecta e informa de este problema:

$ lint --version 
lint: version 17 
$ lint --show MultipleUsesSdk 
MultipleUsesSdk 
--------------- 
Summary: Checks that the <uses-sdk> element appears at most once 

Priority: 6/10 
Severity: Error 
Category: Correctness 

The <uses-sdk> element should appear just once; the tools will *not* merge the 
contents of all the elements so if you split up the atttributes across 
multiple elements, only one of them will take effect. To fix this, just merge 
all the attributes from the various elements into a single <uses-sdk> 
element. 

Más información: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

+0

Gracias por publicar aquí también su comentario. Como referencia, el problema cerrado fue [número 27320] (http://code.google.com/p/android/issues/detail?id=27320). –

0

tiene que especificar el nivel de API en su código y debe ser en una sola linea

uses-sdk android: targetSdkVersion = "19" android: minSdkVersion = "4".

El objetivo debe ser el más reciente. Puede que te ayude, ya que funcionó para mí. Gracias

Cuestiones relacionadas