How can I make sure that newer functions (API level 12) become available for an older API (level 7)? I want to use the RadioButtons block. I am doing this in gridLayout. I use Eclipse Juno for editing, the JDK compliance level for the Java compiler is set to 1.6.
After saving the layout containing gridLayout using RadioButtons, he warned that it was not available in API 7, so he asked if I wanted to decide what I answered βyesβ.
I checked that instead of using GridLayout, this type (right?) Is called android.support.v7.widget.GridLayout in the layout file. A node 'gridlayout_v7' with an empty src subdirectory was placed at the root of the bij Eclipse project.
Android v.11 support library installed.
However, when I run the program on a virtual device (Android 2.1 device), LogCat returns the following errors and warnings:
09-16 08:21:44.068: E/AndroidRuntime(678): ERROR: thread attach failed 09-16 08:21:44.894: W/ResourceType(412): Resources don't contain package for resource number 0x7f0700e5 09-16 08:21:44.906: W/ResourceType(412): Resources don't contain package for resource number 0x7f020031 09-16 08:21:44.906: W/ResourceType(412): Resources don't contain package for resource number 0x7f020030 09-16 08:21:44.906: W/ResourceType(412): Resources don't contain package for resource number 0x7f050000 09-16 08:21:44.984: W/ResourceType(412): Resources don't contain package for resource number 0x7f060000 09-16 08:21:44.994: W/ResourceType(412): Resources don't contain package for resource number 0x7f060001 09-16 08:21:45.234: W/ResourceType(412): Resources don't contain package for resource number 0x7f0700e5 09-16 08:21:45.234: W/ResourceType(412): Resources don't contain package for resource number 0x7f020031 09-16 08:21:45.234: W/ResourceType(412): Resources don't contain package for resource number 0x7f020030 09-16 08:21:45.234: W/ResourceType(412): Resources don't contain package for resource number 0x7f050000 09-16 08:21:45.244: W/ResourceType(412): Resources don't contain package for resource number 0x7f060000 09-16 08:21:45.254: W/ResourceType(412): Resources don't contain package for resource number 0x7f060001 09-16 08:21:47.374: E/AndroidRuntime(689): ERROR: thread attach failed 09-16 08:21:47.844: W/dalvikvm(695): VFY: unable to resolve virtual method 2883: Landroid/support/v7/widget/ViewGroup;.onChildVisibilityChanged (Landroid/view/View;II)V 09-16 08:21:47.844: W/dalvikvm(695): VFY: unable to resolve virtual method 2885: Landroid/support/v7/widget/ViewGroup;.onInitializeAccessibilityEvent (Landroid/view/accessibility/AccessibilityEvent;)V 09-16 08:21:47.854: W/dalvikvm(695): VFY: unable to find class referenced in signature (Landroid/view/accessibility/AccessibilityNodeInfo;) 09-16 08:21:47.854: W/dalvikvm(695): VFY: unable to resolve virtual method 2886: Landroid/support/v7/widget/ViewGroup;.onInitializeAccessibilityNodeInfo (Landroid/view/accessibility/AccessibilityNodeInfo;)V 09-16 08:21:47.874: W/dalvikvm(695): VFY: unable to resolve virtual method 2887: Landroid/support/v7/widget/ViewGroup;.onSetLayoutParams (Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V 09-16 08:21:47.874: W/dalvikvm(695): VFY: unable to resolve virtual method 2888: Landroid/support/v7/widget/ViewGroup;.onViewAdded (Landroid/view/View;)V 09-16 08:21:47.874: W/dalvikvm(695): VFY: unable to resolve virtual method 2889: Landroid/support/v7/widget/ViewGroup;.onViewRemoved (Landroid/view/View;)V 09-16 08:21:47.884: W/dalvikvm(695): VFY: unable to resolve static method 3016: Landroid/view/View;.resolveSizeAndState (III)I
The error log does not show errors.
The console shows the following (no errors):
[2012-11-20 16:59:22 - SimpleScore] ------------------------------ [2012-11-20 16:59:22 - SimpleScore] Android Launch! [2012-11-20 16:59:22 - SimpleScore] adb is running normally. [2012-11-20 16:59:22 - SimpleScore] Performing nl.computerhuys.simplescore.MainActivity activity launch [2012-11-20 16:59:22 - SimpleScore] Automatic Target Mode: launching new emulator with compatible AVD 'VirtualAndroid2.1' [2012-11-20 16:59:22 - SimpleScore] Launching a new emulator with Virtual Device 'VirtualAndroid2.1' [2012-11-20 16:59:32 - Emulator] Warning: No DNS servers found [2012-11-20 16:59:33 - SimpleScore] New emulator found: emulator-5554 [2012-11-20 16:59:33 - SimpleScore] Waiting for HOME ('android.process.acore') to be launched... [2012-11-20 17:00:20 - SimpleScore] HOME is up on device 'emulator-5554' [2012-11-20 17:00:20 - SimpleScore] Uploading SimpleScore.apk onto device 'emulator-5554' [2012-11-20 17:00:22 - SimpleScore] Installing SimpleScore.apk... [2012-11-20 17:00:29 - SimpleScore] Success! [2012-11-20 17:00:29 - SimpleScore] Starting activity nl.computerhuys.simplescore.MainActivity on device emulator-5554 [2012-11-20 17:00:32 - SimpleScore] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=nl.computerhuys.simplescore/.MainActivity }
Full source code file MainActivity.java:
package nl.computerhuys.simplescore; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
Full code for the activity_main.xml layout file:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res/nl.computerhuys.simplescore" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="133dp" android:text="@string/speler1" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="33dp" android:text="@string/speler2" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="33dp" android:text="@string/speler3" android:textAppearance="?android:attr/textAppearanceLarge" /> <android.support.v7.widget.GridLayout android:id="@+id/gridLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView1" android:layout_marginLeft="19dp" android:layout_marginTop="-5dp" android:layout_toRightOf="@+id/textView2" > <RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="0" app:layout_gravity="right" app:layout_row="0" android:text="@string/score1" /> <RadioButton android:id="@+id/radioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="1" app:layout_gravity="left" app:layout_row="0" android:text="@string/score2" /> <RadioButton android:id="@+id/radioButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="2" app:layout_row="0" android:text="@string/score3" /> <android.support.v7.widget.Space android:layout_width="100dp" android:layout_height="28dp" app:layout_column="0" app:layout_row="0" /> </android.support.v7.widget.GridLayout> <android.support.v7.widget.GridLayout android:id="@+id/gridLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@id/textView2" android:layout_marginLeft="19dp" android:layout_marginTop="-5dp" android:layout_toRightOf="@id/textView2" > <RadioButton android:id="@+id/RadioButton03" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="0" app:layout_gravity="right" app:layout_row="0" android:text="@string/score1" /> <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="1" app:layout_gravity="left" app:layout_row="0" android:text="@string/score2" /> <RadioButton android:id="@+id/RadioButton01" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="2" app:layout_gravity="left" app:layout_row="0" android:text="@string/score3" /> <android.support.v7.widget.Space android:layout_width="100dp" android:layout_height="28dp" app:layout_column="0" app:layout_row="0" /> </android.support.v7.widget.GridLayout> <android.support.v7.widget.GridLayout android:id="@+id/gridLayout3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView3" android:layout_marginLeft="19dp" android:layout_marginTop="-5dp" android:layout_toRightOf="@id/textView2" > <RadioButton android:id="@+id/RadioButton05" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="0" app:layout_gravity="right" app:layout_row="0" android:text="@string/score1" /> <RadioButton android:id="@+id/RadioButton06" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="1" app:layout_gravity="left" app:layout_row="0" android:text="@string/score2" /> <RadioButton android:id="@+id/RadioButton04" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_column="2" app:layout_gravity="left" app:layout_row="0" android:text="@string/score3" /> <android.support.v7.widget.Space android:layout_width="100dp" android:layout_height="28dp" app:layout_column="0" app:layout_row="0" /> </android.support.v7.widget.GridLayout> </RelativeLayout>
Finally, here is the manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="nl.computerhuys.simplescore" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Clicking on RadioButton on the virtual device (after the first launch of the application for display) leads to the following LogCat errors:
09-16 09:05:04.056: W/KeyCharacterMap(412): No keyboard for id 0 09-16 09:05:04.064: W/KeyCharacterMap(412): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 09-16 09:05:15.075: W/ActivityManager(412): Scheduling restart of crashed service com.android.inputmethod.latin/.LatinIME in 5000ms 09-16 09:05:15.095: E/ActivityThread(412): Failed to find provider info for android.server.checkin 09-16 09:05:15.105: W/Checkin(412): Can't log event SYSTEM_SERVICE_LOOPING: java.lang.IllegalArgumentException: Unknown URL content://android.server.checkin/events 09-16 09:05:21.114: W/InputMethodManager(695): Ignoring onBind: cur seq=-1, given seq=1
After selecting a radio object, it is not possible to deselect by clicking it again or by selecting a different radio object in the same group (the same GridLayout).
What is wrong, how to solve?