manolazo
03/02/14, 01:35:52
Buenas.
Se sabe que para implementar un GridLayot es necesario minimo API 14, sin embargo quiero bajar el requerimiento en el manifest a API 10 para que el juego llegue a mas terminales.
Habia un tema abierto de hace tiemp o(http://www.htcmania.com/showthread.php?t=749677 ) pero el autor desistio.
He estado mirando como hacerlo importando la libreria de GridLayout que viene en la siguiente ruta: <sdk_folder>\extras\android\compatibility\v7\gridlayout
siguiendo este metodo para importarla:
http://developer.android.com/tools/support-library/setup.html#libs-with-res
Una vez importada , en el readme.txt de dicha libreria indica que:
"Make sure you use <android.support.v7.widget.GridLayout> in your
layouts instead of <GridLayout>.
Same for <android.support.v7.widget.Space> instead of <Space>."
Por ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" <==== the namespace used for the library project
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="6" > <===== notice how we're using app:columnCount here, not android:columnCount!
<Button
android:id="@+id/button1"
app:layout_column="1" <=== again, note the app: namespace
app:layout_columnSpan="2"
app:layout_gravity="left"
app:layout_row="1"
android:text="Button" />
<CheckBox
android:id="@+id/checkBox1"
app:layout_column="4"
app:layout_gravity="left"
app:layout_row="2"
android:text="CheckBox" />
<Button
android:id="@+id/button2"
app:layout_column="5"
app:layout_gravity="left"
app:layout_row="3"
android:text="Button" />
<android.support.v7.widget.Space <=== space widgets also need the full support package path
android:layout_width="21dp" <=== use the android namespace for width, height etc -- only use app: for the grid layout library's new resources
android:layout_height="1dp"
app:layout_column="0"
app:layout_gravity="fill_horizontal"
app:layout_row="0" />
El caso es que cuando hago estos cambios en los layouts , eclipse me lanza el siguiente error:
02-03 01:04:28.900: E/AndroidRuntime(2660): FATAL EXCEPTION: main
02-03 01:04:28.900: E/AndroidRuntime(2660): java.lang.NoSuchMethodError: android.support.v4.view.ViewGroupCompat.getLayoutM ode
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Bounds.includ e(GridLayout.java:2155)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.computeG roupBounds(GridLayout.java:1203)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getGroup Bounds(GridLayout.java:1212)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.createLi nks(GridLayout.java:1221)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getForwa rdLinks(GridLayout.java:1247)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.createAr cs(GridLayout.java:1372)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getArcs( GridLayout.java:1405)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.computeL ocations(GridLayout.java:1576)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getLocat ions(GridLayout.java:1597)
.
.
.
.
No se si esta mal implementada la libreria o si el error es en el layout o que demonios puede ser porque en StackOverFlow no veo una solucion al tema definitiva.
Alguna idea??
Se sabe que para implementar un GridLayot es necesario minimo API 14, sin embargo quiero bajar el requerimiento en el manifest a API 10 para que el juego llegue a mas terminales.
Habia un tema abierto de hace tiemp o(http://www.htcmania.com/showthread.php?t=749677 ) pero el autor desistio.
He estado mirando como hacerlo importando la libreria de GridLayout que viene en la siguiente ruta: <sdk_folder>\extras\android\compatibility\v7\gridlayout
siguiendo este metodo para importarla:
http://developer.android.com/tools/support-library/setup.html#libs-with-res
Una vez importada , en el readme.txt de dicha libreria indica que:
"Make sure you use <android.support.v7.widget.GridLayout> in your
layouts instead of <GridLayout>.
Same for <android.support.v7.widget.Space> instead of <Space>."
Por ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" <==== the namespace used for the library project
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="6" > <===== notice how we're using app:columnCount here, not android:columnCount!
<Button
android:id="@+id/button1"
app:layout_column="1" <=== again, note the app: namespace
app:layout_columnSpan="2"
app:layout_gravity="left"
app:layout_row="1"
android:text="Button" />
<CheckBox
android:id="@+id/checkBox1"
app:layout_column="4"
app:layout_gravity="left"
app:layout_row="2"
android:text="CheckBox" />
<Button
android:id="@+id/button2"
app:layout_column="5"
app:layout_gravity="left"
app:layout_row="3"
android:text="Button" />
<android.support.v7.widget.Space <=== space widgets also need the full support package path
android:layout_width="21dp" <=== use the android namespace for width, height etc -- only use app: for the grid layout library's new resources
android:layout_height="1dp"
app:layout_column="0"
app:layout_gravity="fill_horizontal"
app:layout_row="0" />
El caso es que cuando hago estos cambios en los layouts , eclipse me lanza el siguiente error:
02-03 01:04:28.900: E/AndroidRuntime(2660): FATAL EXCEPTION: main
02-03 01:04:28.900: E/AndroidRuntime(2660): java.lang.NoSuchMethodError: android.support.v4.view.ViewGroupCompat.getLayoutM ode
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Bounds.includ e(GridLayout.java:2155)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.computeG roupBounds(GridLayout.java:1203)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getGroup Bounds(GridLayout.java:1212)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.createLi nks(GridLayout.java:1221)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getForwa rdLinks(GridLayout.java:1247)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.createAr cs(GridLayout.java:1372)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getArcs( GridLayout.java:1405)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.computeL ocations(GridLayout.java:1576)
02-03 01:04:28.900: E/AndroidRuntime(2660): at android.support.v7.widget.GridLayout$Axis.getLocat ions(GridLayout.java:1597)
.
.
.
.
No se si esta mal implementada la libreria o si el error es en el layout o que demonios puede ser porque en StackOverFlow no veo una solucion al tema definitiva.
Alguna idea??