Hola a todos
Hice alguna apps como novata hace unos meses. Al intentar añadir cosas nuevas al eclipse me empezó a dar errores y desinstale el programa. He estado trabajando durante un tiempo y no podía intentar hacer nuevas apps
Ahora vuelvo a estar en paro y he querido reanudar de nuevo el poder hacer algunas aplicaciones
Al intentar instalar de nuevo el eclipse me he encontrado con un montón de problemas que no se cómo solucionar
Os cuento los pasos que sigo para instalarlo todo de nuevo
Me bajo el eclipse desde aquí
http://developer.android.com/sdk/index.html, descargándolo desde donde pone Download the SDK ADTBundle for Windows ( que es como lo he hecho otras veces)
Descomprimo el archivo, y la carpeta que me sale la cambio de nombre y la guardo en C por ejemplo. Dentro de esta carpeta están las otras tres:
Eclipse
sdk
SDK Manager
Luego
el java desde aquí, también como la otra vez
http://www.oracle.com/technetwork/java/javase/downloads/index.html
El JDK que yo tenía en el eclipse anterior era el 7 creo, ahora hay una actualización al 8, yo he probado con los dos y me da errores con ambos
Cuando ya lo tengo instalado y abro el SDK Manager esto es lo que me aparece, esto no es lo que tenía en la versión que tuve instalada anteriormente
Instalo la versión API 17 para que me deje compilar en esta versión. Ya sé que puedo instalar las versiones que quiera.
Cuando empiezo un proyecto nuevo y voy siguiendo los pasos, cuando llego a la última pestaña me sale así
En la anterior versión que yo tenía la línea fragment Layout Name no me salía.
Esa línea no me deja modificarla y si le doy a finalizar el proyecto me sale esto
No solo me sale una fragment_main que en la otra versión que tuve no me salía, sino que me genera otra carpeta " appcompat_v7 que no sé lo que significa y porque me genera una con cada proyecto que hago
Lo he instalado y desinstalado varias veces y me sigue pasando lo mismo
Que estoy haciendo mal?
Muchas gracias
Creo un proyecto nuevo aunque me incluya el fragmento y la carpeta appcompat
Estos son los códigos que me aparecen nada mas crearlo
MainActivity
package com.example.prueba1;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
Activity_main
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.prueba1.MainActivity"
tools:ignore="MergeRootFrame" />
Fragment_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.prueba1.MainActivity$PlaceholderFragment" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Y estas son las modificaciones que hago para adaptarlo a lo que yo quiero
MainActivity
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.os.Build;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Activity_main
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.prueba1.MainActivity"
tools:ignore="MergeRootFrame" />
Fragment_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/portada"
android:onClick="portada"
android:text="@string/portada"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Si no pongo estas tres líneas
android:background="@drawable/portada"
android:onClick="portada"
android:text="@string/portada"
Me lo lanza correctamente, pero si pongo estas tres líneas ya no me lo lanza, aunque yo en mi Graphical Layout veo correctamente mi portada
Esto lo que me sale en el Logcat al lanzarlo
04-12 09:33:48.315: E/AndroidRuntime(2167): FATAL EXCEPTION: main
04-12 09:33:48.315: E/AndroidRuntime(2167): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.prueba1/com.example.prueba1.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class android.widget.RelativeLayout
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.os.Looper.loop(Looper.java:137)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-12 09:33:48.315: E/AndroidRuntime(2167): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 09:33:48.315: E/AndroidRuntime(2167): at java.lang.reflect.Method.invoke(Method.java:511)
04-12 09:33:48.315: E/AndroidRuntime(2167): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-12 09:33:48.315: E/AndroidRuntime(2167): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-12 09:33:48.315: E/AndroidRuntime(2167): at dalvik.system.NativeStart.main(Native Method)
04-12 09:33:48.315: E/AndroidRuntime(2167): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class android.widget.RelativeLayout
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
04-12 09:33:48.315: E/AndroidRuntime(2167): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-12 09:33:48.315: E/AndroidRuntime(2167): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.Activity.setContentView(Activity.java:1881)
04-12 09:33:48.315: E/AndroidRuntime(2167): at com.example.prueba1.MainActivity.onCreate(MainActivity.java:15)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.Activity.performCreate(Activity.java:5104)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-12 09:33:48.315: E/AndroidRuntime(2167): ... 11 more
04-12 09:33:48.315: E/AndroidRuntime(2167): Caused by: java.lang.reflect.InvocationTargetException
04-12 09:33:48.315: E/AndroidRuntime(2167): at java.lang.reflect.Constructor.constructNative(Native Method)
04-12 09:33:48.315: E/AndroidRuntime(2167): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
04-12 09:33:48.315: E/AndroidRuntime(2167): ... 23 more
04-12 09:33:48.315: E/AndroidRuntime(2167): Caused by: java.lang.OutOfMemoryError
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.content.res.Resources.loadDrawable(Resources.java:1965)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.View.<init>(View.java:3330)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.View.<init>(View.java:3259)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.view.ViewGroup.<init>(ViewGroup.java:425)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.widget.RelativeLayout.<init>(RelativeLayout.java:210)
04-12 09:33:48.315: E/AndroidRuntime(2167): ... 26 more
Caused by: java.lang.OutOfMemoryError
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
04-12 09:33:48.315: E/AndroidRuntime(2167): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
añades estas lienas: es solo una forma posible pero es para que puedas seguir los exemplo que veas dejandolo asi:
<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" ></RelativeLayout>es solo una forma posible pero es para que puedas seguir los exemplo que veas dejandolo asi:<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.tuNombreProyecto.MainActivity" //------------------------------------------> fijate en esta linea // pues puede // variar con respecto a // estatools:ignore="MergeRootFrame" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" ></RelativeLayout>en lo ejemplos es posible que no veas la parte de <FrameLayout ..... y el resto ni el cierre tu trabajarias dentro del contnedor de <RelativeLayout .. tambien podrias borrar todo el xml y buscar o copiar el del ejemplo que estes siguiendo pero solo es un apaño tambien cuando puedas ahora aque empiezas informate sobre FrameLayout y por que se han añadido al ADT por que si te acostumbras asi luego te pasa como ami que un dia de buenas me encontre con el cambio este y yo ehh y esto
El jueves, 24 de abril de 2014 20:17:09 UTC+1, carlos anguiano escribió:
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/edfff496-de8b-468a-a03b-550efc568e8c%40googlegroups.com.--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/8h8ez2
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAKHwazyY3UePje%2BF%2BTNtEUtKPHeWhqQrqHL6i%3DhsuLuoj%2BY%3DyA%40mail.gmail.com.
Bueno si el problema inicial era lo que PRE-construye el Eclipse-ADT, no creo que la solución sea el Android-Studio ya que esa IDE, si te pre-Construye mil cosas mas que el ADT. No es una critica a una IDE las dos son excelentes, para mi una mas que la otra, pero gustos personales que no vienen al caso.