java - Calling custom class/method in android -



java - Calling custom class/method in android -

i new android developer , first question, please bear me...

i trying phone call custom method in class made, next error in console:

logcat :

06-18 06:57:13.291: d/androidruntime(1251): >>>>>> androidruntime start com.android.internal.os.runtimeinit <<<<<< 06-18 06:57:13.291: d/androidruntime(1251): checkjni on 06-18 06:57:13.331: d/dalvikvm(1251): trying load lib libjavacore.so 0x0 06-18 06:57:13.341: d/dalvikvm(1251): added shared lib libjavacore.so 0x0 06-18 06:57:13.371: d/dalvikvm(1251): trying load lib libnativehelper.so 0x0 06-18 06:57:13.371: d/dalvikvm(1251): added shared lib libnativehelper.so 0x0 06-18 06:57:14.061: d/androidruntime(1251): calling main entry com.android.commands.pm.pm 06-18 06:57:14.091: d/androidruntime(1251): shutting downwards vm 06-18 06:57:14.101: d/dalvikvm(1251): gc_concurrent freed 94k, 18% free 469k/568k, paused 0ms+1ms, total 12ms 06-18 06:57:14.101: d/dalvikvm(1251): debugger has detached; object registry had 1 entries 06-18 06:57:14.621: d/androidruntime(1263): >>>>>> androidruntime start com.android.internal.os.runtimeinit <<<<<< 06-18 06:57:14.621: d/androidruntime(1263): checkjni on 06-18 06:57:14.661: d/dalvikvm(1263): trying load lib libjavacore.so 0x0 06-18 06:57:14.671: d/dalvikvm(1263): added shared lib libjavacore.so 0x0 06-18 06:57:14.701: d/dalvikvm(1263): trying load lib libnativehelper.so 0x0 06-18 06:57:14.701: d/dalvikvm(1263): added shared lib libnativehelper.so 0x0 06-18 06:57:15.411: d/androidruntime(1263): calling main entry com.android.commands.am.am 06-18 06:57:15.421: d/dalvikvm(1263): note: class landroid/app/activitymanagernative; has 157 unimplemented (abstract) methods 06-18 06:57:15.452: i/activitymanager(274): start u0 {act=android.intent.action.main cat=[android.intent.category.launcher] flg=0x10000000 cmp=com.example.virginmobileinfo/.mainactivity} pid 1263 06-18 06:57:15.502: d/androidruntime(1263): shutting downwards vm 06-18 06:57:15.522: d/dalvikvm(1263): gc_concurrent freed 95k, 17% free 499k/596k, paused 1ms+1ms, total 11ms 06-18 06:57:15.522: d/jdwp(1263): got wake-up signal, bailing out of select 06-18 06:57:15.522: d/dalvikvm(1263): debugger has detached; object registry had 1 entries 06-18 06:57:15.661: e/surfaceflinger(36): ro.sf.lcd_density must defined build property 06-18 06:57:16.791: i/process(1232): sending signal. pid: 1232 sig: 9 06-18 06:57:16.812: i/activitymanager(274): process com.example.virginmobileinfo (pid 1232) has died. 06-18 06:57:16.831: d/dalvikvm(1273): not late-enabling checkjni (already on) 06-18 06:57:16.852: i/activitymanager(274): start proc com.example.virginmobileinfo activity com.example.virginmobileinfo/.mainactivity: pid=1273 uid=10049 gids={50049, 1028} 06-18 06:57:17.341: e/trace(1273): error opening trace file: no such file or directory (2) 06-18 06:57:17.651: d/dalvikvm(1273): gc_for_alloc freed 96k, 8% free 2566k/2784k, paused 32ms, total 35ms 06-18 06:57:17.661: i/dalvikvm-heap(1273): grow heap (frag case) 3.227mb 635812-byte allocation 06-18 06:57:17.721: d/dalvikvm(1273): gc_for_alloc freed 2k, 7% free 3185k/3408k, paused 60ms, total 60ms 06-18 06:57:17.761: d/dalvikvm(1273): gc_concurrent freed <1k, 7% free 3186k/3408k, paused 4ms+2ms, total 41ms 06-18 06:57:17.831: d/androidruntime(1273): shutting downwards vm 06-18 06:57:17.831: w/dalvikvm(1273): threadid=1: thread exiting uncaught exception (group=0x40a71930) 06-18 06:57:17.851: e/androidruntime(1273): fatal exception: main 06-18 06:57:17.851: e/androidruntime(1273): java.lang.runtimeexception: unable start activity componentinfo{com.example.virginmobileinfo/com.example.virginmobileinfo.mainactivity}: android.os.networkonmainthreadexception 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activitythread.performlaunchactivity(activitythread.java:2180) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2230) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activitythread.access$600(activitythread.java:141) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activitythread$h.handlemessage(activitythread.java:1234) 06-18 06:57:17.851: e/androidruntime(1273): @ android.os.handler.dispatchmessage(handler.java:99) 06-18 06:57:17.851: e/androidruntime(1273): @ android.os.looper.loop(looper.java:137) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activitythread.main(activitythread.java:5041) 06-18 06:57:17.851: e/androidruntime(1273): @ java.lang.reflect.method.invokenative(native method) 06-18 06:57:17.851: e/androidruntime(1273): @ java.lang.reflect.method.invoke(method.java:511) 06-18 06:57:17.851: e/androidruntime(1273): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 06-18 06:57:17.851: e/androidruntime(1273): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 06-18 06:57:17.851: e/androidruntime(1273): @ dalvik.system.nativestart.main(native method) 06-18 06:57:17.851: e/androidruntime(1273): caused by: android.os.networkonmainthreadexception 06-18 06:57:17.851: e/androidruntime(1273): @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1117) 06-18 06:57:17.851: e/androidruntime(1273): @ java.net.inetaddress.lookuphostbyname(inetaddress.java:385) 06-18 06:57:17.851: e/androidruntime(1273): @ java.net.inetaddress.getallbynameimpl(inetaddress.java:236) 06-18 06:57:17.851: e/androidruntime(1273): @ java.net.inetaddress.getallbyname(inetaddress.java:214) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpconnection.<init>(httpconnection.java:70) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpconnection.<init>(httpconnection.java:50) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpconnection$address.connect(httpconnection.java:340) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpconnectionpool.get(httpconnectionpool.java:87) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpconnection.connect(httpconnection.java:128) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpengine.opensocketconnection(httpengine.java:316) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpsurlconnectionimpl$httpsengine.makesslconnection(httpsurlconnectionimpl.java:461) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpsurlconnectionimpl$httpsengine.connect(httpsurlconnectionimpl.java:433) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpengine.sendsocketrequest(httpengine.java:290) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpengine.sendrequest(httpengine.java:240) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpurlconnectionimpl.connect(httpurlconnectionimpl.java:81) 06-18 06:57:17.851: e/androidruntime(1273): @ libcore.net.http.httpsurlconnectionimpl.connect(httpsurlconnectionimpl.java:165) 06-18 06:57:17.851: e/androidruntime(1273): @ org.jsoup.helper.httpconnection$response.execute(httpconnection.java:439) 06-18 06:57:17.851: e/androidruntime(1273): @ org.jsoup.helper.httpconnection$response.execute(httpconnection.java:424) 06-18 06:57:17.851: e/androidruntime(1273): @ org.jsoup.helper.httpconnection.execute(httpconnection.java:178) 06-18 06:57:17.851: e/androidruntime(1273): @ org.jsoup.helper.httpconnection.post(httpconnection.java:173) 06-18 06:57:17.851: e/androidruntime(1273): @ com.example.virginmobileinfo.minuteschecker.userdata.downloaduserprofile(userdata.java:31) 06-18 06:57:17.851: e/androidruntime(1273): @ com.example.virginmobileinfo.minuteschecker.userdata.loaddata(userdata.java:46) 06-18 06:57:17.851: e/androidruntime(1273): @ com.example.virginmobileinfo.mainactivity.oncreate(mainactivity.java:110) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activity.performcreate(activity.java:5104) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080) 06-18 06:57:17.851: e/androidruntime(1273): @ android.app.activitythread.performlaunchactivity(activitythread.java:2144) 06-18 06:57:17.851: e/androidruntime(1273): ... 11 more 06-18 06:57:17.881: w/activitymanager(274): forcefulness finishing activity com.example.virginmobileinfo/.mainactivity 06-18 06:57:18.051: d/dalvikvm(274): gc_for_alloc freed 661k, 24% free 7194k/9380k, paused 124ms, total 133ms 06-18 06:57:18.221: e/surfaceflinger(36): ro.sf.lcd_density must defined build property 06-18 06:57:18.582: w/activitymanager(274): activity pause timeout activityrecord{40f99c98 u0 com.example.virginmobileinfo/.mainactivity} 06-18 06:57:18.651: e/surfaceflinger(36): ro.sf.lcd_density must defined build property 06-18 06:57:18.681: w/egl_emulation(398): eglsurfaceattrib not implemented 06-18 06:57:20.464: d/exchangeservice(633): received deviceid email app: null 06-18 06:57:20.464: d/exchangeservice(633): !!! deviceid unknown; stopping self , retrying

here class:

package com.example.virginmobileinfo.minuteschecker; import java.io.file; import java.io.filenotfoundexception; import java.io.ioexception; import java.io.printwriter; import java.io.unsupportedencodingexception; import java.util.arrays; import java.util.scanner; import org.jsoup.jsoup; public class userdata { private org.jsoup.nodes.document vm_website_data; private string[] tags_to_load = {"first-name", "phone-number", "balance", "total", "start-date", "mins-used", "mins-left"}; private string user_data_file_path = "user_data.txt"; private string data_to_sort; /** download latest profile source code */ public string downloaduserprofile(){ //showdebugtoast("attempting download profile..."); vm_website_data = null; //declare variable seek { //showdebugtoast("downloading profile..."); vm_website_data = jsoup.connect("https://www2.virginmobileusa.com/login/login.do") .timeout(10*6000) .data("min", "5555555555") .data("vkey", "999999") .data("submit", "submit") .post(); //showdebugtoast("profile downloaded!"); } grab (ioexception e) { e.printstacktrace(); //return blank if can't download profile } //showdebugtoast(vm_website_data.tostring()); homecoming vm_website_data.tostring(); //return info if successful } /** filter usable info vm website code */ public void loaddata(){ file file = new file(user_data_file_path); if(file.exists() == false){ data_to_sort = downloaduserprofile(); data_to_sort = stringutils.substringbetween(data_to_sort, "<vmu-page", "</vmu-page>"); } else if(data_to_sort == null){ seek { data_to_sort = new scanner(file).usedelimiter("\\a").next(); } grab (filenotfoundexception e) { e.printstacktrace(); } } //showdebugtoast("running filter..."); /* turn mass info pieces */ string[] output_arr = new string[tags_to_load.length]; (int = 0; < tags_to_load.length; i++){ string tag_id = tags_to_load[i]; string tag_contents = stringutils.substringbetween(data_to_sort, "<" + tags_to_load[i] + ">", "</" + tag_id + ">"); output_arr[i] = "<" + tag_id + ">" + tag_contents + "</" + tag_id + ">"; //showdebugtoast(tag_id + " : " + tag_contents); } /* save file if didn't exist in first place */ if(file.exists() == false){ saveuserprofile(output_arr); } } public void saveuserprofile(string[] output_arr){ //showdebugtoast("saving profile..."); printwriter author = null; seek { author = new printwriter(user_data_file_path, "utf-8"); } grab (filenotfoundexception | unsupportedencodingexception e) { e.printstacktrace(); } writer.println(arrays.tostring(output_arr)); writer.close(); //showdebugtoast("profile saved!"); } public void showdebugtoast(string messagetext){ //toast.maketext(getapplicationcontext(), messagetext, toast.length_short).show(); //system.out.println(messagetext); } }

edit: initial problem userdata class in launch configuration. took out , called method loaddata() oncreate() in mainactivity activity.

android's entry point isn't public static void main(string[] args) regular java application, uses activities instead.

you should putting code within oncreate(), oncreateview(), onstart() or other applicable method in activity (or fragment).

read on activity , its lifecycle (and fragment lifecycle) see gets executed when take where/when code should executed.

edit: possible have class main method in android takes doing configured , not trying do. here related question , answer (and another) on topic in case you're interested.

edit2: sec issue

your stacktrace shows:

caused by: android.os.networkonmainthreadexception ... @ com.example.virginmobileinfo.minuteschecker.userdata.downloaduserprofile(userdata.java:31)

you attempting create network interactions on ui thread android doesn't allow create app unresponsive duration of call.

you need @ asynctask or other background thread handling. android docs on topic are here

java android xml eclipse parsing

Comments

Popular posts from this blog

model view controller - MVC Rails Planning -

ruby on rails - Devise Logout Error in RoR -

html - Submenu setup with jquery and effect 'fold' -