i'm trying learn build android apps. first attempt. okay , when activity (this when select rock) have display hello world. tried develop rules winning , losing whenever select rock app crashes. please take look.
package ro.pa.sc; import java.util.random; import android.annotation.targetapi; import android.app.activity; import android.os.build; import android.os.bundle; import android.support.v4.app.navutils; import android.view.menu; import android.view.menuitem; import android.widget.textview; public class rockvs extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); randombox(); setcontentview(r.layout.activity_rockvs); // show button in action bar. setupactionbar(); } /** * set {@link android.app.actionbar}, if api available. */ @targetapi(build.version_codes.honeycomb) private void setupactionbar() { if (build.version.sdk_int >= build.version_codes.honeycomb) { getactionbar().setdisplayhomeasupenabled(true); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.rockvs, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case android.r.id.home: // id represents home or button. in case of // activity, button shown. use navutils allow users // navigate 1 level in application structure. // more details, see navigation pattern on android design: // // http://developer.android.com/design/patterns/navigation.html#up- vs-back // navutils.navigateupfromsametask(this); return true; } return super.onoptionsitemselected(item); } public void randombox() { random r = new random(); int pickednumber=r.nextint(2); if (pickednumber==1) { win(); } else if (pickednumber==2) { lose(); } else if (pickednumber==0){ tie(); } } public void win() { string message = "computer picked scissors! won!"; textview textview = new textview(this); textview.settextsize(40); textview.settext(message); setcontentview(textview); } public void lose() { string message = "computer picked paper! lose!"; textview textview = new textview(this); textview.settextsize(40); textview.settext(message); setcontentview(textview); } public void tie() { string message = "computer picked rock! it's tie!"; textview textview = new textview(this); textview.settextsize(40); textview.settext(message); setcontentview(textview); } }
logcat output:
05-05 19:22:46.571: d/activitythread(15646): settargetheaputilization:0.25 05-05 19:22:46.571: d/activitythread(15646): settargetheapidealfree:8388608 05-05 19:22:46.581: d/activitythread(15646): settargetheapconcurrentstart:2097152 05-05 19:22:46.722: i/adreno200-egl(15646): <qegldrvapi_eglinitialize:269>: egl 1.4 qualcomm build: (cl2803123) 05-05 19:22:46.722: i/adreno200-egl(15646): build date: 11/28/12 wed 05-05 19:22:46.722: i/adreno200-egl(15646): local branch: d1l_jb_1736j_disable_cpumempool 05-05 19:22:46.722: i/adreno200-egl(15646): remote branch: 05-05 19:22:46.722: i/adreno200-egl(15646): local patches: 05-05 19:22:46.722: i/adreno200-egl(15646): reconstruct branch: 05-05 19:22:48.233: w/dalvikvm(15646): threadid=1: thread exiting uncaught exception (group=0x4126c438) 05-05 19:22:48.253: e/androidruntime(15646): fatal exception: main 05-05 19:22:48.253: e/androidruntime(15646): java.lang.runtimeexception: unable start activity componentinfo{ro.pa.sc/ro.pa.sc.rockvs}: android.view.inflateexception: binary xml file line #11: error inflating class <unknown> 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activitythread.performlaunchactivity(activitythread.java:2080) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2105) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activitythread.access$600(activitythread.java:137) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activitythread$h.handlemessage(activitythread.java:1203) 05-05 19:22:48.253: e/androidruntime(15646): @ android.os.handler.dispatchmessage(handler.java:99) 05-05 19:22:48.253: e/androidruntime(15646): @ android.os.looper.loop(looper.java:137) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activitythread.main(activitythread.java:4904) 05-05 19:22:48.253: e/androidruntime(15646): @ java.lang.reflect.method.invokenative(native method) 05-05 19:22:48.253: e/androidruntime(15646): @ java.lang.reflect.method.invoke(method.java:511) 05-05 19:22:48.253: e/androidruntime(15646): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:790) 05-05 19:22:48.253: e/androidruntime(15646): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:557) 05-05 19:22:48.253: e/androidruntime(15646): @ dalvik.system.nativestart.main(native method) 05-05 19:22:48.253: e/androidruntime(15646): caused by: android.view.inflateexception: binary xml file line #11: error inflating class <unknown> 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.createview(layoutinflater.java:613) 05-05 19:22:48.253: e/androidruntime(15646): @ com.android.internal.policy.impl.phonelayoutinflater.oncreateview(phonelayoutinflater.java:56) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.oncreateview(layoutinflater.java:660) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:685) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.rinflate(layoutinflater.java:746) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.inflate(layoutinflater.java:489) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.inflate(layoutinflater.java:396) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.inflate(layoutinflater.java:352) 05-05 19:22:48.253: e/androidruntime(15646): @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:321) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activity.setcontentview(activity.java:2087) 05-05 19:22:48.253: e/androidruntime(15646): @ ro.pa.sc.rockvs.oncreate(rockvs.java:20) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activity.performcreate(activity.java:5232) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1082) 05-05 19:22:48.253: e/androidruntime(15646): @ android.app.activitythread.performlaunchactivity(activitythread.java:2044) 05-05 19:22:48.253: e/androidruntime(15646): ... 11 more 05-05 19:22:48.253: e/androidruntime(15646): caused by: java.lang.reflect.invocationtargetexception 05-05 19:22:48.253: e/androidruntime(15646): @ java.lang.reflect.constructor.constructnative(native method) 05-05 19:22:48.253: e/androidruntime(15646): @ java.lang.reflect.constructor.newinstance(constructor.java:417) 05-05 19:22:48.253: e/androidruntime(15646): @ android.view.layoutinflater.createview(layoutinflater.java:587) 05-05 19:22:48.253: e/androidruntime(15646): ... 24 more 05-05 19:22:48.253: e/androidruntime(15646): caused by: android.content.res.resources$notfoundexception: file picked rock! hope win! drawable resource id #0x7f050009: .xml extension required 05-05 19:22:48.253: e/androidruntime(15646): @ android.content.res.resources.loadcolorstatelist(resources.java:2094) 05-05 19:22:48.253: e/androidruntime(15646): @ android.content.res.typedarray.getcolorstatelist(typedarray.java:342) 05-05 19:22:48.253: e/androidruntime(15646): @ android.widget.textview.<init>(textview.java:820) 05-05 19:22:48.253: e/androidruntime(15646): @ android.widget.textview.<init>(textview.java:489) 05-05 19:22:48.253: e/androidruntime(15646): ... 27 more
xml file :
<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=".rockvs" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:text="@string/pickedrock" android:textcolor="@string/pickedrock" android:textsize="25sp" /> </relativelayout>
in xml, line:
android:textcolor="@string/pickedrock"
is not correct - should point color resource, not string.
Comments
Post a Comment