I am developing web based application, in which I am overriding
shouldInterceptRequest of WebViewClient as shown below.
public WebResourceResponse shouldInterceptRequest(WebView view, String
url)
{
WebResourceResponse response = null;
if(url.startsWith("myscheme://"))
{
String MY_CONTENT_PROVIDER_URI = "content://
android.sunil.myprovider/";
String myurl = MY_CONTENT_PROVIDER_URI + url;
String mimeType = null;
String encoding = "utf-8";
int mimeIndex = myurl.lastIndexOf('?');
if (mimeIndex != -1)
{
myurl= myurl.substring(0, mimeIndex);
mimeType = "text/html";
}
Uri myuri= Uri.parse(myurl);
InputStream wrtInputStream =
mContext.getContentResolver().openInputStream(myuri); response = new
MyWebResourceResponse(mimeType,encoding,wrtInputStream);
}
else
response = super.shouldInterceptRequest(view,url);
return response;
}
// My Content Provider OpenFile function is defined as:::
public ParcelFileDescriptor openFile(Uri uri, String mode) throws
FileNotFoundException
{
String filename = uri.toString();
filename = filename.replace("myscheme://","/mnt/sdcard/");
return ParcelFileDescriptor.open(new File(filename),
ParcelFileDescriptor.MODE_READ_ONLY);
}
Now from my app I am calling WebView.loadUrl("myscheme://mywebfolder/
index.html") and mywebfolder is placed in mnt/sdcard which is resolved
in my content provider as shown above.
Now problem arises when count for call of loadUrl increases beyond
510 then my app crashes with the given log::
03-08 11:01:33.190: E/dalvikvm(8499): JNI ERROR (app bug): local
reference table overflow (max=512)
03-08 11:01:33.190: W/dalvikvm(8499): JNI local reference table
(0x9a5598) dump:
03-08 11:01:33.190: W/dalvikvm(8499): Last 10 entries (of 512):
03-08 11:01:33.190: W/dalvikvm(8499): 511: 0x41234248
java.io.FileDescriptor
03-08 11:01:33.190: W/dalvikvm(8499): 510: 0x40c3d7e0
libcore.io.Posix
03-08 11:01:33.190: W/dalvikvm(8499): 509: 0x4232f458 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 508: 0x42327440 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 507: 0x4231f428 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 506: 0x42317410 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 505: 0x4230f3f8 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 504: 0x423073e0 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 503: 0x422ff3c8 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): 502: 0x422f73b0 byte[]
(32768 elements)
03-08 11:01:33.190: W/dalvikvm(8499): Summary:
03-08 11:01:33.190: W/dalvikvm(8499): 510 of byte[] (32768
elements) (510 unique instances)
03-08 11:01:33.190: W/dalvikvm(8499): 1 of
java.io.FileDescriptor
03-08 11:01:33.190: W/dalvikvm(8499): 1 of libcore.io.Posix
03-08 11:01:33.190: E/dalvikvm(8499): Failed adding to JNI local ref
table (has 512 entries)
03-08 11:01:33.190: I/dalvikvm(8499): "Thread-384" prio=5 tid=18
RUNNABLE
03-08 11:01:33.190: I/dalvikvm(8499): | group="main" sCount=0
dsCount=0 obj=0x41175f70 self=0x3f8d80
03-08 11:01:33.190: I/dalvikvm(8499): | sysTid=8765 nice=0 sched=0/0
cgrp=default handle=3659544
03-08 11:01:33.190: I/dalvikvm(8499): | schedstat=( 866337498
264198581 1430 ) utm=70 stm=16 core=0
03-08 11:01:33.190: I/dalvikvm(8499): at
libcore.io.Posix.readBytes(Native Method)
03-08 11:01:33.190: I/dalvikvm(8499): at
libcore.io.Posix.read(Posix.java:118)
03-08 11:01:33.190: I/dalvikvm(8499): at
libcore.io.BlockGuardOs.read(BlockGuardOs.java:149)
03-08 11:01:33.190: I/dalvikvm(8499): at
libcore.io.IoBridge.read(IoBridge.java:422)
03-08 11:01:33.190: I/dalvikvm(8499): at
java.io.FileInputStream.read(FileInputStream.java:179)
03-08 11:01:33.190: I/dalvikvm(8499): at
java.io.InputStream.read(InputStream.java:163)
03-08 11:01:33.190: I/dalvikvm(8499): at
dalvik.system.NativeStart.run(Native Method)
03-08 11:01:33.190: E/dalvikvm(8499): VM aborting
03-08 11:01:33.195: A/libc(8499): Fatal signal 11 (SIGSEGV) at
0xdeadd00d (code=1)
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en