An interesting line number there...
I've worked with Java for 15 years. I used to teach it at degree level for 10 years. In all my life I've never seen a negative line number. However, I do know it is possible to have small negative numbers there when going through the jniThrowException method.
Given the line numbers come from the line number table attribute in the class file, which maps blocks of byte code to line numbers of source code, one of only two ways I can think of seeing a negative (i.e. impossible) line number in there is if the class file is corrupted.
By "rooted" in your signature, do you mean literally that (i.e. you have root level access?)? Or do you mean you've installed a custom firmware (which you need root level access in order to do)? If you have a custom firmware you may consider reinstalling it, or take the opportunity to update to one of the latest and greatest ones out there.
However, the error does come from JNI, so it's possible it's just messing things up as I knew was possible above.
Anyway, if it's not a corrupt class, then it's more than likely your camera wasn't reconnected properly when you had your screen replaced.
I'm not 100% convinced of this though... Looking at the relevant bits of code...
Code:
static void android_hardware_Camera_startPreview(JNIEnv *env, jobject thiz)
{
?? ?Camera *c = get_native_camera(env, thiz);
?? ?if (c == 0)
?? ? ? ?return;
?? ?
?? ?if (c->startPreview() != NO_ERROR) {
?? ? ? ?jniThrowException(env, "java/io/IOException", "startPreview failed");
?? ? ? ?return;
?? ?}
}
static Camera *get_native_camera(JNIEnv *env, jobject thiz)
{
?? ?Camera *c = reinterpret_cast(env->GetIntField(thiz, fields.context));
?? ?if (c == 0)
?? ? ? ?jniThrowException(env, "java/lang/RuntimeException", "Method called after release()");
?? ?return c;
}
??{ "startPreview",
?? ?"()V",
?? ?(void *)android_hardware_Camera_startPreview },
...you're not getting the "Method called after release()" error, so c (the camera object) isn't 0. That to me implies there's a camera detected. Or maybe just a driver for one?
Anyway... my gut instinct is that while replacing your screen, the camera got disconnected (check the connections) or broken.
Bookmarks