Mi aplicación funciona en Gingerbread … Crash en ICS y HC

Necesito tu ayuda. Mi aplicación funciona bien en GingerBread, pero en ICS y HC accidente. Este es el logcat

01-14 20:26:51.831: E/AndroidRuntime(698): FATAL EXCEPTION: main 01-14 20:26:51.831: E/AndroidRuntime(698): android.os.NetworkOnMainThreadException 01-14 20:26:51.831: E/AndroidRuntime(698): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 01-14 20:26:51.831: E/AndroidRuntime(698): at java.net.InetAddress.lookupHostByName(InetAddress.java:391) 01-14 20:26:51.831: E/AndroidRuntime(698): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242) 01-14 20:26:51.831: E/AndroidRuntime(698): at java.net.InetAddress.getAllByName(InetAddress.java:220) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpEngine.connect(HttpEngine.java:303) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232) 01-14 20:26:51.831: E/AndroidRuntime(698): at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80) 01-14 20:26:51.831: E/AndroidRuntime(698): at com.bozz.milaircraft.f23$ImageAdapter.getView(f23.java:125) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:192) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.measureVertical(LinearLayout.java:812) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 01-14 20:26:51.831: E/AndroidRuntime(698): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.View.measure(View.java:12723) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.os.Handler.dispatchMessage(Handler.java:99) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.os.Looper.loop(Looper.java:137) 01-14 20:26:51.831: E/AndroidRuntime(698): at android.app.ActivityThread.main(ActivityThread.java:4424) 01-14 20:26:51.831: E/AndroidRuntime(698): at java.lang.reflect.Method.invokeNative(Native Method) 01-14 20:26:51.831: E/AndroidRuntime(698): at java.lang.reflect.Method.invoke(Method.java:511) 01-14 20:26:51.831: E/AndroidRuntime(698): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 01-14 20:26:51.831: E/AndroidRuntime(698): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 01-14 20:26:51.831: E/AndroidRuntime(698): at dalvik.system.NativeStart.main(Native Method) 

Aquí está el layout.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000" android:paddingBottom="5dp" android:paddingTop="5dp" > <Button android:id="@+id/homebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/homebutton" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:gravity="center" android:text="@string/nomeF22Raptor" android:textColor="#FFD800" android:textSize="22dp" android:textStyle="bold" /> <Button android:id="@+id/searchbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/searchbutton" > </Button> </LinearLayout> <TabHost android:id="@+id/tabhost" android:layout_width="match_parent" android:layout_height="420dp" android:layout_weight="0.80" android:background="@drawable/background" > <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" > </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/tab1" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/datiF22Raptor" /> </LinearLayout> </ScrollView> </LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cartecF22Raptor" /> </LinearLayout> </ScrollView> </LinearLayout> <LinearLayout android:id="@+id/tab3" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/utilizzatoriF22Raptor" /> </LinearLayout> </ScrollView> </LinearLayout> <LinearLayout android:id="@+id/tab4" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="center" > </ImageView> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout> 

y este es el código java

 import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Gallery; import android.widget.ImageView; import android.widget.TabHost; import android.widget.TabHost.TabSpec; public class f23 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.f23); Button bhome = (Button) findViewById(R.id.homebutton); bhome.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub startActivity(new Intent("com.bozz.milaircraft.MENU")); } }); TabHost th = (TabHost) findViewById(R.id.tabhost); th.setup(); TabSpec specs = th.newTabSpec("tag1"); specs.setContent(R.id.tab1); specs.setIndicator("BRIEFING"); th.addTab(specs); specs = th.newTabSpec("tag2"); specs.setContent(R.id.tab2); specs.setIndicator("DESIGN"); th.addTab(specs); specs = th.newTabSpec("tag3"); specs.setContent(R.id.tab3); specs.setIndicator("USERS"); th.addTab(specs); specs = th.newTabSpec("tag4"); specs.setContent(R.id.tab4); specs.setIndicator("GALLERY"); th.addTab(specs); Gallery ga = (Gallery) findViewById(R.id.gallery); ga.setAdapter(new ImageAdapter(this)); } public class ImageAdapter extends BaseAdapter { /** The parent context */ private Context myContext; int imageBackground; /** URL-Strings to some remote images. */ private String[] myRemoteImages = { "http://www.medicinarozzano.it/images/milair/f4_1.jpg", "http://www.medicinarozzano.it/images/milair/f4_2.jpg", "http://www.medicinarozzano.it/images/milair/f4_3.jpg", "http://www.medicinarozzano.it/images/milair/f4_4.jpg", "http://www.medicinarozzano.it/images/milair/f4_5.jpg", "http://www.medicinarozzano.it/images/milair/f4_6.jpg", "http://www.medicinarozzano.it/images/milair/f4_7.jpg", "http://www.medicinarozzano.it/images/milair/f4_8.jpg", "http://www.medicinarozzano.it/images/milair/f4_9.jpg", "http://www.medicinarozzano.it/images/milair/f4_10.jpg"}; /** Simple Constructor saving the 'parent' context. */ public ImageAdapter(Context c) { this.myContext = c; } /** Returns the amount of images we have defined. */ public int getCount() { return this.myRemoteImages.length; } /* Use the array-Positions as unique IDs */ public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } /** * Returns a new ImageView to be displayed, depending on the position * passed. */ public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(this.myContext); try { /* Open a new URL and get the InputStream to load data from it. */ URL aURL = new URL(myRemoteImages[position]); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); /* Buffered is always good for a performance plus. */ BufferedInputStream bis = new BufferedInputStream(is); /* Decode url-data to a bitmap. */ Bitmap bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); /* Apply the Bitmap to the ImageView that will be returned. */ i.setImageBitmap(bm); } catch (IOException e) { i.setImageResource(R.drawable.f4_1); Log.e("DEBUGTAG", "Remote Image Exception", e); } /* Image should be scaled as width/height are set. */ i.setScaleType(ImageView.ScaleType.CENTER_INSIDE); /* Set the Width/Height of the ImageView. */ i.setLayoutParams(new Gallery.LayoutParams(480, 640)); return i; } /** * Returns the size (0.0f to 1.0f) of the views depending on the * 'offset' to the center. */ public float getScale(boolean focused, int offset) { /* Formula: 1 / (2 ^ offset) */ return Math.max(0, 1.0f / (float) Math.pow(2, Math.abs(offset))); } } } 

La aplicación se bloquea cuando hago clic en la pestaña Galería.

Es una mala idea realizar (potencialmente bloquear) operaciones de red en el hilo principal de la aplicación, que es lo que está haciendo. Antes de Honeycomb (Android 3.0), era sólo una mala idea. Desde Android 3.0 en adelante, está prohibido y recibirá esta excepción si intenta hacerlo.

Vea http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

Debe extraer esta lógica de red a un subproceso asincrónico independiente. O, mira a un Handler . Vas a necesitar cambiar tu arquitectura de código; no es fácil.

En red Honeycomb no está permitido en el subproceso de interfaz de usuario . La razón es que ralentiza la interfaz de usuario (UI).

En su lugar tratar de descargar sus imágenes en un hilo de fondo, la forma más fácil de implementar esto es utilizando un AsyncTask .

Úselo bajo su propio riesgo:

 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() .permitAll() .build(); StrictMode.setThreadPolicy(policy); 

Recurso: http://developer.android.com/reference/android/os/StrictMode.ThreadPolicy.Builder.html

Puedes ver la versión del sistema operativo, y ejecutar un código dependiendo de él.

Por ejemplo:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) 

Así resuelvo el problema:

 import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.entity.BufferedHttpEntity; import org.apache.http.impl.client.DefaultHttpClient; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Gallery; import android.widget.ImageView; import android.widget.TabHost; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import android.widget.TabHost.TabSpec; public class f24 extends Activity { private ImageAdapter imageAdapter; private ArrayList<String> PhotoURLS = new ArrayList<String>(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.f24); Button bhome = (Button) findViewById(R.id.homebutton); bhome.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub startActivity(new Intent ("com.bozz.milaircraft.MENU")); } }); TabHost th = (TabHost) findViewById(R.id.tabhost); th.setup(); TabSpec specs = th.newTabSpec("tag1"); specs.setContent(R.id.tab1); specs.setIndicator("BRIEFING"); th.addTab(specs); specs = th.newTabSpec("tag2"); specs.setContent(R.id.tab2); specs.setIndicator("DESIGN"); th.addTab(specs); specs = th.newTabSpec("tag3"); specs.setContent(R.id.tab3); specs.setIndicator("USERS"); th.addTab(specs); specs = th.newTabSpec("tag4"); specs.setContent(R.id.tab4); specs.setIndicator("GALLERY"); th.addTab(specs); imageAdapter = new ImageAdapter(this); final ImageView imgView = (ImageView) findViewById(R.id.GalleryView); Gallery g = (Gallery) findViewById(R.id.Gallery); g.setAdapter(imageAdapter); g.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { imgView.setImageDrawable(LoadImageFromURL(PhotoURLS .get(position))); imgView.setScaleType(ImageView.ScaleType.FIT_CENTER); } }); // replace this code to set your image urls in list PhotoURLS.add("http://www.medicinarozzano.it/images/milair/f4_1.jpg"); PhotoURLS.add("http://www.medicinarozzano.it/images/milair/f4_1.jpg"); new AddImageTask().execute(); } class AddImageTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... unused) { for (String url : PhotoURLS) { String filename = url.substring(url.lastIndexOf("/") + 1, url.length()); filename = "th_" + filename; String thumburl = url.substring(0, url.lastIndexOf("/") + 1); imageAdapter.addItem(LoadThumbnailFromURL(thumburl + filename)); publishProgress(); //SystemClock.sleep(200); } return (null); } @Override protected void onProgressUpdate(Void... unused) { imageAdapter.notifyDataSetChanged(); } @Override protected void onPostExecute(Void unused) { } } private Drawable LoadThumbnailFromURL(String url) { try { URLConnection connection = new URL(url).openConnection(); String contentType = connection.getHeaderField("Content-Type"); boolean isImage = contentType.startsWith("image/"); if(isImage){ HttpGet httpRequest = new HttpGet(url); HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient .execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufferedHttpEntity = new BufferedHttpEntity(entity); InputStream is = bufferedHttpEntity.getContent(); Drawable d = Drawable.createFromStream(is, "src Name"); return d; } else { Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.no_image); Drawable d = new BitmapDrawable(b); return d; } } catch (Exception e) { Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG) .show(); Log.e(e.getClass().getName(), e.getMessage(), e); return null; } } private Drawable LoadImageFromURL(String url) { try { URLConnection connection = new URL(url).openConnection(); String contentType = connection.getHeaderField("Content-Type"); boolean isImage = contentType.startsWith("image/"); if(isImage){ HttpGet httpRequest = new HttpGet(url); HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient .execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufferedHttpEntity = new BufferedHttpEntity( entity); InputStream is = bufferedHttpEntity.getContent(); // Decode image size BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeStream(is, null, o); // The new size we want to scale to final int REQUIRED_SIZE = 150; // Find the correct scale value. It should be the power of 2. int width_tmp = o.outWidth, height_tmp = o.outHeight; int scale = 1; while (true) { if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE) break; width_tmp /= 2; height_tmp /= 2; scale *= 2; } // Decode with inSampleSize is = bufferedHttpEntity.getContent(); BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; Bitmap b = BitmapFactory.decodeStream(is, null, o2); Drawable d = new BitmapDrawable(b); return d; } else { Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.no_image); Drawable d = new BitmapDrawable(b); return d; } } catch (Exception e) { Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG) .show(); Log.e(e.getClass().getName(), e.getMessage(), e); return null; } } public class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; private Context mContext; ArrayList<Drawable> drawablesFromUrl = new ArrayList<Drawable>(); public ImageAdapter(Context c) { mContext = c; TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); mGalleryItemBackground = a.getResourceId( R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle(); } public void addItem(Drawable item) { drawablesFromUrl.add(item); } public int getCount() { return drawablesFromUrl.size(); } public Drawable getItem(int position) { return drawablesFromUrl.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(mContext); i.setImageDrawable(drawablesFromUrl.get(position)); i.setLayoutParams(new Gallery.LayoutParams(150, 120)); i.setScaleType(ImageView.ScaleType.CENTER_INSIDE); i.setBackgroundResource(mGalleryItemBackground); return i; } } } 

Pero ahora tengo otro problema:

Si no declaro ningún SDK en Android Manifest, la aplicación funciona perfectamente tanto en pan de jengibre y HC, e ICS. Sin embargo, si declaro un SDK mínimo mayor que 1 o TargetSDK, la aplicación funciona bien en pan de jengibre, pero no en HC e ISC. Cuando hago clic en una imagen en la galería nada aparece en el visor de imágenes. Sin embargo, aparece un error de pan tostado.

Además, si no hay conexión a Internet, la aplicación se bloquea.

Saludos cordiales Tiberio Bozotti

EDIT: podría quitar el SDK pero en el panal no está claro. Lo que significa que el diseño no es compatible.

  • Corriendo Android Studio en Windows 7 falla, no Android SDK encontrado
  • Música de backround de Android a través de múltiples actividades; Cómo presionar el botón Inicio
  • ¿Cómo puedo bloquear el teléfono mediante programación Android?
  • La mejor manera de comparar fechas en Android
  • Ver la inyección de dependencia con la daga 2
  • Conversión no verificada
  • Cómo hacer una cámara personalizada con Live Stickers
  • ¿Cómo implementar la facturación en la aplicación en una aplicación de Android?
  • 'Org.apache.http.HttpEntity' está obsoleto. ¿Cómo solucionar este error en android studio?
  • OnConfigurationChanged () no se dispara para keyboardHidden
  • Clase de aplicación que se ejecuta en el hilo de interfaz de usuario o?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.