¿Por qué no funciona el código de los tutoriales de Android SDK fuera de la caja?
¿Me estoy perdiendo de algo?
Sigo las instrucciones exactamente en esta página (y algunos de los otros tutoriales), pero siempre parecen faltar alguna información clave, ya que no funcionan fuera de la caja.
- ¿Cuál es el mejor SDK publicitario para móviles?
- La importación de Android Facebook SDK se produce con errores - Eclipse
- Administrador SDK Host desconocido dl-ssl.google.com
- No se puede iniciar la actividad ComponentInfo {...}: java.lang.NullPointerException
- Dispositivo virtual Android 4.3 CPU / ABI - No se instalaron imágenes del sistema (eclipse)
He añadido un montón de paquetes que parecían estar desaparecidos, pero ahora estoy atascado.
http://developer.android.com/resources/tutorials/views/hello-gridview.html
Descripción Ruta de recursos Tipo de ubicación La conversión al formato Dalvik falló con error 1 HelloGrid Desconocido Android Packaging Problem
Y un montón de ellos para cada una de las referencias drawable.sample_ *
Descripción Ruta de recursos Tipo de ubicación R.drawable.sample_0 no se puede resolver ImageAdapter.java / HelloGrid / src / com / example / ImageAdapter línea 51 Java Problema
package com.example.HelloGrid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import com.example.ImageAdapter.ImageAdapter; public class HelloGrid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(HelloGrid.this, "" + position, Toast.LENGTH_SHORT).show(); } }); } } package com.example.ImageAdapter; import android.R; import android.R.drawable; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } // create a new ImageView for each item referenced by the Adapter public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mThumbIds[position]); return imageView; } // references to our images private Integer[] mThumbIds = { R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 }; }
Como se puede ver, tengo todas las imágenes cargadas en el directorio / drawable
- ADT Plugin desapareció en Eclipse
- Facebook SDK + SlidingMenu SDK = Desajuste de los tarros! Corregir sus dependencias
- Error de Mobile SDK: OPERATION_NOT_ALLOWED
- Android Studio se congela al iniciar
- Cómo abrir una aplicación Android SDK de ejemplo en Eclipse
- Cambiar el nivel de API de Android Studio
- ¿Por qué Blackberry y Android SDK necesitan versiones antiguas de Eclipse IDE?
- Llamar a MediaRecorder bloquea la aplicación en AndroidStudio
Parece que los tutoriales están perdiendo parte de la información del paquete, pero si está utilizando eclipse debería manejar la mayor parte de eso para usted.
Descripción Ruta de recursos Tipo de ubicación R.drawable.sample_0 no se puede resolver ImageAdapter.java / HelloGrid / src / com / example / ImageAdapter línea 51 Java Problema
Te estás perdiendo tus recursos disponibles. Eso fue cubierto en el paso # 2 en las instrucciones suministradas en el tutorial .
Eliminar import android.R;
Esto confunde el R de Eclipses;
Es por eso que no puede localizar las imágenes.
Además, simplemente puede colocarlo dentro de los directorios dibujables pre-creados en res. (Por ejemplo, drawable-hdpi, etc.)
Tuve este problema también, y lo resolvió mediante la fijación de esta línea:
Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
a
Toast.makeText(HelloGridViewActivity.this, "" + position, Toast.LENGTH_SHORT).show();
Tengo la solución:
package com.gridview.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.GridView; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Toast; import android.widget.BaseAdapter; import android.content.Context; import android.view.ViewGroup; import android.widget.ImageView; public class HelloGridView extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show(); } }); } public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } // create a new ImageView for each item referenced by the Adapter public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mThumbIds[position]); return imageView; } // references to our images private Integer[] mThumbIds = { R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 }; } }
La adición de importaciones resolvió el problema para mí.
Y me enteré de que en realidad en Eclipse pueden ser importados automáticamente:
"Sugerencia: Después de haber pegado código de ejemplo en un proyecto Eclipse, presione Ctrl (o Cmd) + Mayús + O para importar los paquetes requeridos"
Espero que esto refresque lo que se han perdido.