I have set up a socket connection between two droids, and I can send data back and forth with no problem. However, in the server side I have set up a ContentObserver to be notified when there is a change to the contacts.
I get the notification, but when I try to send a message to the client that the contacts have changed, I get a fatal exception. The content observer code is
public class ContactWatcher extends ContentObserver {
public ContactWatcher( Handler h )
{
super( h );
}
public void onChange(boolean selfChange)
{
if(!ConnectionManager.devices[0].matches("Null"))
{
ConnectionManager.sendMessage(MessageNames.CONTACT_UPDATE, 0);
}
}
I get to the sendMessage code, but when it tries to write to the socket the program crashes with the LogCat output
09-04 16:00:50.880: ERROR/AndroidRuntime(958): FATAL EXCEPTION: main
09-04 16:00:50.880: ERROR/AndroidRuntime(958): android.os.NetworkOnMainThreadException
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at dalvik.system.BlockGuard$WrappedNetworkSystem.write(BlockGuard.java:290)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:462)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at org.apache.harmony.luni.net.SocketOutputStream.write(SocketOutputStream.java:55)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:165)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.io.BufferedWriter.flush(BufferedWriter.java:129)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.io.PrintWriter.flush(PrintWriter.java:270)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.io.PrintWriter.println(PrintWriter.java:491)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.io.PrintWriter.println(PrintWriter.java:603)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at com.gigaset.homepanel.ConnectionManager.sendMessage(ConnectionManager.java:151)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at com.gigaset.homepanel.ContactWatcher.onChange(ContactWatcher.java:19)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:43)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at android.os.Handler.handleCallback(Handler.java:587)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at android.os.Handler.dispatchMessage(Handler.java:92)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at android.os.Looper.loop(Looper.java:132)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at android.app.ActivityThread.main(ActivityThread.java:4025)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at java.lang.reflect.Method.invoke(Method.java:491)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
09-04 16:00:50.880: ERROR/AndroidRuntime(958): at dalvik.system.NativeStart.main(Native Method)
The Android SDK documentation for the NetworkOnMainThreadException class is pretty clear and easy to understand. It states that it is thrown on Honeycomb when you try to perform a network operation on the main UI thread.
The fix is of course to run the network operation in a background thread. You can associate the ContentObserver with a different thread by passing a handler for that thread when you construct the ContentObserver.
Alternately, you could directly spawn a new thread, or post a runnable to a handler on a different thread.
If you really want to run the network operation on the main thread, you should be able to disable that exception via the StrictMode apis (not recommended)
Related
My Android code using Google Map API v2 is not working on genymotion. I have developed this code and run on my PC and it works fine, but the same code I am trying in my laptop then it gives me error "app has unfortunately stopped". I checked my code 100 times and it's perfect, everything is perfect in configuration at Google API console.
I have installed Google Play service in genymotion using following links:
http://filetrip.net/dl?4SUOrdcMRv
http://wiki.cyanogenmod.org/w/Google_Apps#gappsCM11
Logcat output:
09-04 20:07:15.691: E/AndroidRuntime(2728): FATAL EXCEPTION: main
09-04 20:07:15.691: E/AndroidRuntime(2728): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.geolocation/com.example.geolocation.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.geolocation.MainActivity" on path: /data/app/com.example.geolocation-2.apk
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.os.Looper.loop(Looper.java:137)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.ActivityThread.main(ActivityThread.java:5041)
09-04 20:07:15.691: E/AndroidRuntime(2728): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 20:07:15.691: E/AndroidRuntime(2728): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 20:07:15.691: E/AndroidRuntime(2728): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-04 20:07:15.691: E/AndroidRuntime(2728): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-04 20:07:15.691: E/AndroidRuntime(2728): at dalvik.system.NativeStart.main(Native Method)
09-04 20:07:15.691: E/AndroidRuntime(2728): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.geolocation.MainActivity" on path: /data/app/com.example.geolocation-2.apk
09-04 20:07:15.691: E/AndroidRuntime(2728): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
09-04 20:07:15.691: E/AndroidRuntime(2728): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-04 20:07:15.691: E/AndroidRuntime(2728): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
09-04 20:07:15.691: E/AndroidRuntime(2728): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
09-04 20:07:15.691: E/AndroidRuntime(2728): ... 11 more
Ok, so I've got my Android application and it wont boot with a "unable to instantiate activity ComponentInfo{}" error, basically theres something wrong in my manifest file that won't let the application launch the first activity. I made a new but essentially duplicated project (manually copying across the Java+XML code for Main, second + third 'tester' activities, and of course Strings). I left the manifest of the new project as it is but added the activity lines for the tester. I wanted everything as stock basically so nothing could go wrong, and nothing did, the application loaded on emulator and my phone alright.
So I copy the new manifest to my old project in an effort to 'default' it, and I copy and pasted the tester activity code that was already there and worked, for the other 3 activity's. Suddenly it doesn't want to work. Everything is there, but what's the problem? (note the icon drawable is changed but that's nothing to do with it). All the activity names match up to package names and whatnot. Could this be a bug? I honestly cannot find anything wrong.
Duplicate (+ working) code
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="#drawable/logo3"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.ollygrov.bakerspride.Main"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.ollygrov.bakerspride.Cal"
android:label="#string/title_activity_cal" >
</activity>
<activity
android:name="com.ollygrov.bakerspride.Breads"
android:label="#string/title_activity_breads" >
</activity>
</application>
Old (+ not working) code
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.ollygrov.bakerspride.Main"
android:label="#string/app_title" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.ollygrov.bakerspride.Cal"
android:label="#string/title_activity_cal" >
</activity>
<activity
android:name="com.ollygrov.bakerspride.Breads"
android:label="#string/title_activity_breads" >
</activity>
<activity
android:name="com.ollygrov.bakerspride.Gal"
android:label="#string/title_activity_gal" >
</activity>
<activity
android:name="com.ollygrov.bakerspride.Tut"
android:label="#string/title_activity_tut" >
</activity>
<activity
android:name="com.ollygrov.bakerspride.Rec"
android:label="#string/title_activity_rec" >
</activity>
</application>
EDIT: I just copied and pasted the codes into the search bar on Chrome (changing the droid:icon and droid:label to fit) and they are exactly the same!! What?! Am I not allowed to have 6 activities or something?
Errors:
09-04 11:33:04.895: E/AndroidRuntime(717): FATAL EXCEPTION: main
09-04 11:33:04.895: E/AndroidRuntime(717): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ollygrov.bakerspride/com.ollygrov.bakerspride.Main}: java.lang.NullPointerException
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.os.Looper.loop(Looper.java:137)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-04 11:33:04.895: E/AndroidRuntime(717): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 11:33:04.895: E/AndroidRuntime(717): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 11:33:04.895: E/AndroidRuntime(717): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-04 11:33:04.895: E/AndroidRuntime(717): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-04 11:33:04.895: E/AndroidRuntime(717): at dalvik.system.NativeStart.main(Native Method)
09-04 11:33:04.895: E/AndroidRuntime(717): Caused by: java.lang.NullPointerException
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.Activity.findViewById(Activity.java:1825)
09-04 11:33:04.895: E/AndroidRuntime(717): at com.ollygrov.bakerspride.Main.<init>(Main.java:19)
09-04 11:33:04.895: E/AndroidRuntime(717): at java.lang.Class.newInstanceImpl(Native Method)
09-04 11:33:04.895: E/AndroidRuntime(717): at java.lang.Class.newInstance(Class.java:1319)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
09-04 11:33:04.895: E/AndroidRuntime(717): ... 11 more
09-04 11:34:58.665: E/Trace(765): error opening trace file: No such file or directory (2)
09-04 11:34:59.095: D/AndroidRuntime(765): Shutting down VM
09-04 11:34:59.095: W/dalvikvm(765): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
09-04 11:34:59.114: E/AndroidRuntime(765): FATAL EXCEPTION: main
09-04 11:34:59.114: E/AndroidRuntime(765): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ollygrov.bakerspride/com.ollygrov.bakerspride.Main}: java.lang.NullPointerException
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.os.Looper.loop(Looper.java:137)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-04 11:34:59.114: E/AndroidRuntime(765): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 11:34:59.114: E/AndroidRuntime(765): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 11:34:59.114: E/AndroidRuntime(765): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-04 11:34:59.114: E/AndroidRuntime(765): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-04 11:34:59.114: E/AndroidRuntime(765): at dalvik.system.NativeStart.main(Native Method)
09-04 11:34:59.114: E/AndroidRuntime(765): Caused by: java.lang.NullPointerException
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.Activity.findViewById(Activity.java:1825)
09-04 11:34:59.114: E/AndroidRuntime(765): at com.ollygrov.bakerspride.Main.<init>(Main.java:19)
09-04 11:34:59.114: E/AndroidRuntime(765): at java.lang.Class.newInstanceImpl(Native Method)
09-04 11:34:59.114: E/AndroidRuntime(765): at java.lang.Class.newInstance(Class.java:1319)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
09-04 11:34:59.114: E/AndroidRuntime(765): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
The problem is your Main Constructor:
09-04 11:33:04.895: E/AndroidRuntime(717): Caused by: java.lang.NullPointerException
09-04 11:33:04.895: E/AndroidRuntime(717): at android.app.Activity.findViewById(Activity.java:1825)
09-04 11:33:04.895: E/AndroidRuntime(717): at com.ollygrov.bakerspride.Main.<init>(Main.java:19)
In line 19 of Main.java you are trying to call findViewById() which will obviously not work. It is way to early to call such code in the constructor.
My best guess is, that you need to move EVERYTHING from the cronstructor to onCreate() of the Activity.
Normally you don't need a custom constructor in Activities or Fragments.
Does anyone know why when I click on a button with onclick() method then a broadcast receiver connextion gets called. This broadcast it's used when the connection switch between off to on or reverse. But I was online already and it got called!
There are the errors:
09-04 22:35:25.285: E/SqliteDatabaseCpp(8057): CREATE TABLE android_metadata failed
09-04 22:35:25.285: E/SQLiteDatabase(8057): Failed to open the database. closing it.
09-04 22:35:25.285: E/SQLiteDatabase(8057): android.database.sqlite.SQLiteDatabaseLockedException: database is locked
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteDatabase.setLocale_(SQLiteDatabase.java:2211)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2199)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1130)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1081)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1167)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:833)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at com.background.Database.open(Database.java:135)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at com.background.Broadcast_Reciver.onReceive(BroadcastService.java:100)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.os.Handler.handleCallback(Handler.java:605)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.os.Handler.dispatchMessage(Handler.java:92)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.os.Looper.loop(Looper.java:137)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at android.app.ActivityThread.main(ActivityThread.java:4507)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
09-04 22:35:25.285: E/SQLiteDatabase(8057): at dalvik.system.NativeStart.main(Native Method)
09-04 22:35:25.285: D/AndroidRuntime(8057): Shutting down VM
09-04 22:35:25.285: W/dalvikvm(8057): threadid=1: thread exiting with uncaught exception (group=0x40c341f8)
09-04 22:35:25.300: E/AndroidRuntime(8057): FATAL EXCEPTION: main
09-04 22:35:25.300: E/AndroidRuntime(8057): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000010 (has extras) } in com.background.Broadcast_Reciver#41724178
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:737)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.os.Handler.handleCallback(Handler.java:605)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.os.Handler.dispatchMessage(Handler.java:92)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.os.Looper.loop(Looper.java:137)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.app.ActivityThread.main(ActivityThread.java:4507)
09-04 22:35:25.300: E/AndroidRuntime(8057): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 22:35:25.300: E/AndroidRuntime(8057): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 22:35:25.300: E/AndroidRuntime(8057): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
09-04 22:35:25.300: E/AndroidRuntime(8057): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
09-04 22:35:25.300: E/AndroidRuntime(8057): at dalvik.system.NativeStart.main(Native Method)
09-04 22:35:25.300: E/AndroidRuntime(8057): Caused by: android.database.sqlite.SQLiteDatabaseLockedException: database is locked
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteDatabase.setLocale_(SQLiteDatabase.java:2211)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2199)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1130)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1081)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1167)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:833)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
09-04 22:35:25.300: E/AndroidRuntime(8057): at com.background.Database.open(Database.java:135)
09-04 22:35:25.300: E/AndroidRuntime(8057): at com.background.Broadcast_Reciver.onReceive(BroadcastService.java:100)
09-04 22:35:25.300: E/AndroidRuntime(8057): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
09-04 22:35:25.300: E/AndroidRuntime(8057): ... 9 more
Take a look at this error please:
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000010 (has extras) } in com.background.Broadcast_Reciver#41724178
I am using MediaPlayer to try and stream video and audio from youtube.
How do i go about doing this using the url:
Example:
http://www.youtube.com/watch?v=SgGhtjKWLOE&feature=feedrec
EDIT: LogCat Error i get when using your methods.
09-04 22:22:30.140: INFO/AwesomePlayer(85): setDataSource_l('http://www.youtube.com/watch?v=I3jv0IF9n6A')
09-04 22:22:30.140: INFO/NuHTTPDataSource(85): connect to www.youtube.com:80/watch?v=I3jv0IF9n6A #0
09-04 22:22:30.250: INFO/NuHTTPDataSource(85): connect to m.youtube.com:80/watch?desktop_uri=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DI3jv0IF9n6A&v=I3jv0IF9n6A&gl=US #0
09-04 22:22:30.410: INFO/NuHTTPDataSource(85): connect to m.youtube.com:80/#/watch?desktop_uri=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DI3jv0IF9n6A&v=I3jv0IF9n6A&gl=US #0
09-04 22:22:30.570: INFO/NuHTTPDataSource(85): Chunked transfer encoding applied.
09-04 22:22:30.570: WARN/NuHTTPDataSource(85): Server did not give us the content length!
09-04 22:22:31.000: INFO/NuCachedSource2(85): ERROR_END_OF_STREAM
09-04 22:22:31.630: ERROR/MediaPlayer(8404): error (1, -2147483648)
09-04 22:22:31.630: WARN/System.err(8404): java.io.IOException: Prepare failed.: status=0x1
09-04 22:22:31.630: WARN/System.err(8404): at android.media.MediaPlayer.prepare(Native Method)
09-04 22:22:31.630: WARN/System.err(8404): at com.fttech.example.youtube.example.AccessibleYouTube.watchVideo(AccessibleYouTube.java:139)
09-04 22:22:31.630: WARN/System.err(8404): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 22:22:31.630: WARN/System.err(8404): at java.lang.reflect.Method.invoke(Method.java:491)
09-04 22:22:31.630: WARN/System.err(8404): at android.view.View$1.onClick(View.java:2678)
09-04 22:22:31.630: WARN/System.err(8404): at android.view.View.performClick(View.java:3110)
09-04 22:22:31.630: WARN/System.err(8404): at android.view.View$PerformClick.run(View.java:11928)
09-04 22:22:31.630: WARN/System.err(8404): at android.os.Handler.handleCallback(Handler.java:587)
09-04 22:22:31.630: WARN/System.err(8404): at android.os.Handler.dispatchMessage(Handler.java:92)
If you're wanting to use MediaPlayer object then the following calls will work for you:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource("http://www.youtube.com/watch?v=SgGhtjKWLOE&feature=feedrec");
mp.prepare();
mp.start();
Otherwise, if you don't mind having the YouTube app take over, you can use the following code:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=SgGhtjKWLOE&feature=feedrec")));
Uri uri = Uri.parse("http://www.youtube.com/watch?v=SgGhtjKWLOE&feature=feedrec");
Intent i = new Intent("android.intent.action.VIEW");
i.setDataAndType(uri, "video/*");
startActivity(i);
Here is the program I used to code it in my android application to find the GPS location of the device.
package com.gps.TestingApps;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
public class TestingApps extends Activity implements LocationListener{
private LocationManager locationManager;
private TextView latitude;
private TextView longitude;
/** Called when the activity is first created. */
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//bind the ui components to code referances
latitude = (TextView) findViewById(R.id.latitude);
longitude = (TextView) findViewById(R.id.longitude);
//get the locationManager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
startListening();
}
private void startListening() {
//registers our class as the listener
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, (LocationListener) this);
}
private void stopListening() {
locationManager.removeUpdates((LocationListener) this);
}
public void onLocationChanged(Location location) {
latitude.setText(location.getLatitude()+"");
longitude.setText(location.getLongitude()+"");
stopListening();
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
I didn't get any bugs but there is a runtime error, I can't get the values of latitude and longitude instead I get the value false values for both.
here is the error message displayed in my Logcat.
09-04 12:52:47.541: WARN/ResourceType(59): Failure getting entry for 0x7f020000 (t=1 e=0) in package 0: 0xffffffb5
09-04 12:52:49.981: WARN/ResourceType(122): Failure getting entry for 0x7f020000 (t=1 e=0) in package 0: 0xffffffb5
09-04 12:52:50.161: WARN/PackageManager(122): Failure retrieving icon 0x7f020000 in package com.greatinnovus.TestingApps
09-04 12:52:50.161: WARN/PackageManager(122): android.content.res.Resources$NotFoundException: Resource ID #0x7f020000
09-04 12:52:50.161: WARN/PackageManager(122): at android.content.res.Resources.getValue(Resources.java:846)
09-04 12:52:50.161: WARN/PackageManager(122): at android.content.res.Resources.getDrawable(Resources.java:534)
09-04 12:52:50.161: WARN/PackageManager(122): at android.app.ApplicationContext$ApplicationPackageManager.getDrawable(ApplicationContext.java:1923)
09-04 12:52:50.161: WARN/PackageManager(122): at android.content.pm.ComponentInfo.loadIcon(ComponentInfo.java:88)
09-04 12:52:50.161: WARN/PackageManager(122): at com.htc.launcher.LauncherModel.updateApplicationInfoTitleAndIcon(LauncherModel.java:488)
09-04 12:52:50.161: WARN/PackageManager(122): at com.htc.launcher.LauncherModel.makeAndCacheApplicationInfo(LauncherModel.java:469)
09-04 12:52:50.161: WARN/PackageManager(122): at com.htc.launcher.LauncherModel.access$300(LauncherModel.java:55)
09-04 12:52:50.161: WARN/PackageManager(122): at com.htc.launcher.LauncherModel$1.run(LauncherModel.java:188)
09-04 12:52:50.181: ERROR/PackageInstallationReceiver(235): Remove /data/local/tmp/com.greatinnovus.TestingApps.apk Fail!
09-04 12:52:50.201: WARN/System.err(235): java.io.IOException: Error running exec(). Commands: [/system/xbin/su, 0, /system/bin/rm, /data/local/tmp/com.greatinnovus.TestingApps.apk] Working Directory: null Environment: null
09-04 12:52:50.281: WARN/System.err(235): at java.lang.ProcessManager.exec(ProcessManager.java:196)
09-04 12:52:50.291: WARN/System.err(235): at java.lang.Runtime.exec(Runtime.java:225)
09-04 12:52:50.291: WARN/System.err(235): at java.lang.Runtime.exec(Runtime.java:313)
09-04 12:52:50.301: WARN/System.err(235): at java.lang.Runtime.exec(Runtime.java:246)
09-04 12:52:50.301: WARN/System.err(235): at com.htc.android.psclient.PackageInstallationReceiver.removeTempPackageFile(PackageInstallationReceiver.java:30)
09-04 12:52:50.311: WARN/System.err(235): at com.htc.android.psclient.PackageInstallationReceiver.onReceive(PackageInstallationReceiver.java:22)
09-04 12:52:50.311: WARN/System.err(235): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2408)
09-04 12:52:50.321: WARN/System.err(235): at android.app.ActivityThread.access$2700(ActivityThread.java:112)
09-04 12:52:50.321: WARN/System.err(235): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1741)
09-04 12:52:50.321: WARN/System.err(235): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 12:52:50.331: WARN/System.err(235): at android.os.Looper.loop(Looper.java:123)
09-04 12:52:50.331: WARN/System.err(235): at android.app.ActivityThread.main(ActivityThread.java:3948)
09-04 12:52:50.341: WARN/System.err(235): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 12:52:50.351: WARN/System.err(235): at java.lang.reflect.Method.invoke(Method.java:521)
09-04 12:52:50.351: WARN/System.err(235): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
09-04 12:52:50.351: WARN/System.err(235): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
09-04 12:52:50.361: WARN/System.err(235): at dalvik.system.NativeStart.main(Native Method)
09-04 12:52:50.361: WARN/System.err(235): Caused by: java.io.IOException: No such file or directory
09-04 12:52:50.381: WARN/System.err(235): at java.lang.ProcessManager.exec(Native Method)
09-04 12:52:50.391: WARN/System.err(235): at java.lang.ProcessManager.exec(ProcessManager.java:194)
09-04 12:52:50.391: WARN/System.err(235): ... 16 more
09-04 12:52:51.751: WARN/Resources(1707): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050000}
09-04 12:52:51.751: WARN/Resources(1707): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050002}
09-04 12:53:19.541: ERROR/SETTING_AUTO_BACKLIGHT(59): open: /sys/class/leds/lcd-backlight/auto failed, errno: 2
09-04 12:54:27.811: ERROR/SETTING_AUTO_BACKLIGHT(59): open: /sys/class/leds/lcd-backlight/auto failed, errno: 2
09-04 12:54:43.911: WARN/KeyCharacterMap(1707): Bad keycharmap - filesize=32
09-04 12:54:45.313: WARN/WeatherUtil(122): schedule DCS task, mixed quest code
09-04 12:54:51.962: WARN/MobileDataStateTracker(59): startUsingNetworkFeature=enableAGPS callid=59calluid= 1000
09-04 12:55:21.951: WARN/MobileDataStateTracker(59): stopUsingNetworkFeature=enableAGPS callid=59calluid= 1000
09-04 12:55:38.811: WARN/dalvikvm(122): disableGcForExternalAlloc: true
09-04 12:55:38.971: ERROR/SETTING_AUTO_BACKLIGHT(59): open: /sys/class/leds/lcd-backlight/auto failed, errno: 2
09-04 12:55:39.661: WARN/dalvikvm(122): disableGcForExternalAlloc: false
09-04 12:55:39.841: WARN/dalvikvm(122): disableGcForExternalAlloc: true
09-04 12:55:40.981: WARN/dalvikvm(122): disableGcForExternalAlloc: false
09-04 12:55:43.481: WARN/WeatherUtil(122): schedule DCS task, mixed quest code
09-04 12:56:26.191: WARN/dalvikvm(122): disableGcForExternalAlloc: true
09-04 12:56:27.301: WARN/dalvikvm(122): disableGcForExternalAlloc: false
09-04 12:56:29.811: WARN/WeatherUtil(122): schedule DCS task, mixed quest code
09-04 12:56:42.331: WARN/ResourceType(59): Failure getting entry for 0x7f020000 (t=1 e=0) in package 0: 0xffffffb5
09-04 12:56:45.691: ERROR/PackageInstallationReceiver(235): Remove /data/local/tmp/com.greatinnovus.TestingApps.apk Fail!
09-04 12:56:45.711: WARN/System.err(235): java.io.IOException: Error running exec(). Commands: [/system/xbin/su, 0, /system/bin/rm, /data/local/tmp/com.greatinnovus.TestingApps.apk] Working Directory: null Environment: null
09-04 12:56:45.711: WARN/System.err(235): at java.lang.ProcessManager.exec(ProcessManager.java:196)
09-04 12:56:45.711: WARN/System.err(235): at java.lang.Runtime.exec(Runtime.java:225)
09-04 12:56:45.711: WARN/System.err(235): at java.lang.Runtime.exec(Runtime.java:313)
09-04 12:56:45.721: WARN/System.err(235): at java.lang.Runtime.exec(Runtime.java:246)
09-04 12:56:45.721: WARN/System.err(235): at com.htc.android.psclient.PackageInstallationReceiver.removeTempPackageFile(PackageInstallationReceiver.java:30)
09-04 12:56:45.721: WARN/System.err(235): at com.htc.android.psclient.PackageInstallationReceiver.onReceive(PackageInstallationReceiver.java:22)
09-04 12:56:45.721: WARN/System.err(235): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2408)
09-04 12:56:45.721: WARN/System.err(235): at android.app.ActivityThread.access$2700(ActivityThread.java:112)
09-04 12:56:45.721: WARN/System.err(235): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1741)
09-04 12:56:45.721: WARN/System.err(235): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 12:56:45.731: WARN/System.err(235): at android.os.Looper.loop(Looper.java:123)
09-04 12:56:45.731: WARN/System.err(235): at android.app.ActivityThread.main(ActivityThread.java:3948)
09-04 12:56:45.731: WARN/System.err(235): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 12:56:45.731: WARN/System.err(235): at java.lang.reflect.Method.invoke(Method.java:521)
09-04 12:56:45.741: WARN/System.err(235): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
09-04 12:56:45.741: WARN/System.err(235): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
09-04 12:56:45.741: WARN/System.err(235): at dalvik.system.NativeStart.main(Native Method)
09-04 12:56:45.741: WARN/System.err(235): Caused by: java.io.IOException: No such file or directory
09-04 12:56:45.761: WARN/System.err(235): at java.lang.ProcessManager.exec(Native Method)
09-04 12:56:45.761: WARN/System.err(235): at java.lang.ProcessManager.exec(ProcessManager.java:194)
09-04 12:56:45.761: WARN/System.err(235): ... 16 more
09-04 12:56:45.901: WARN/ResourceType(122): Failure getting entry for 0x7f020000 (t=1 e=0) in package 0: 0xffffffb5
09-04 12:56:45.941: WARN/PackageManager(122): Failure retrieving icon 0x7f020000 in package com.greatinnovus.TestingApps
09-04 12:56:45.941: WARN/PackageManager(122): android.content.res.Resources$NotFoundException: Resource ID #0x7f020000
09-04 12:56:45.941: WARN/PackageManager(122): at android.content.res.Resources.getValue(Resources.java:846)
09-04 12:56:45.941: WARN/PackageManager(122): at android.content.res.Resources.getDrawable(Resources.java:534)
09-04 12:56:45.941: WARN/PackageManager(122): at android.app.ApplicationContext$ApplicationPackageManager.getDrawable(ApplicationContext.java:1923)
09-04 12:56:45.941: WARN/PackageManager(122): at android.content.pm.ComponentInfo.loadIcon(ComponentInfo.java:88)
09-04 12:56:45.941: WARN/PackageManager(122): at com.htc.launcher.LauncherModel.updateApplicationInfoTitleAndIcon(LauncherModel.java:488)
09-04 12:56:45.941: WARN/PackageManager(122): at com.htc.launcher.LauncherModel.updateAndCacheApplicationInfo(LauncherModel.java:289)
09-04 12:56:45.941: WARN/PackageManager(122): at com.htc.launcher.LauncherModel.access$500(LauncherModel.java:55)
09-04 12:56:45.941: WARN/PackageManager(122): at com.htc.launcher.LauncherModel$2.run(LauncherModel.java:265)
09-04 12:56:46.551: WARN/Resources(1751): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050000}
09-04 12:56:46.551: WARN/Resources(1751): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f050002}
09-04 12:56:59.111: WARN/KeyCharacterMap(1751): Bad keycharmap - filesize=32
09-04 12:57:00.524: WARN/WeatherUtil(122): schedule DCS task, mixed quest code
09-04 12:57:59.821: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 12:58:59.911: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 12:59:59.981: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:01:00.121: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:01:03.131: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:01:06.141: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:02:06.281: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:03:06.461: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:03:09.463: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:03:12.481: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:04:12.621: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:05:12.741: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:05:15.744: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:05:18.751: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:06:18.881: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:06:21.873: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:07:21.963: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:07:24.971: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:07:27.981: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:08:28.181: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:08:31.182: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:08:34.201: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:08:37.221: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:08:40.241: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:09:40.383: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:09:43.381: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:09:46.401: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:10:46.531: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:11:46.641: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:11:49.641: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:12:49.771: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:12:52.771: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:12:55.801: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:12:58.822: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:12:59.721: WARN/Smack/Packet(166): notify conn break (IOEx), close connection
09-04 13:13:01.832: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:13:04.842: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
09-04 13:13:07.861: WARN/LocationManagerService(59): acquireWakeLock(): Unable to get WiFi lock
Your problem is not related to GPS in any way. You're simply missing an icon in your res/drawable folder, that you're referencing to from somewhere, as you can see in your log.
android.content.res.Resources$NotFoundException:
Resource ID #0x7f020000 09-0