Python用sl4a开发Android应用,Webview中javascript调用android api闪退

发布于 2021-11-11 23:07:01 字数 808 浏览 846 评论 4

如题

Python版本2.6.2

sl4a版本r6

主程序在webview中打开页面

# -*- coding: cp936 -*-
import android,sys
import time
if __name__ == '__main__' :
	droid = android.Android()
	droid.addOptionsMenuItem('Exit','exit')
	droid.webViewShow('file:///sdcard/sl4a/scripts/home.html')

	while True:
		response = droid.eventWait().result
		if response == None:
			continue
		print response
		if response['name'] == 'exit': 
			break

然后在页面中定义方法调用android api

sayHello = function(){
    var droid = new Android();
    droid.makeToast('HelloWorld')
}

然后调用sayHello方法,程序就闪退了

网上搜了很久找不到原因,求指点啊~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哑剧 2021-11-16 21:18:44

貌似我找到问题所在了,据说是Android2.3中的bug引起的

Android 2.3中Webkit引擎导致VM崩溃的问题

http://www.linuxidc.com/Linux/2011-05/35782.htm

不过那个作者写的解决方法太高端,没看懂,求简易解决方法~~~~

深巷少女 2021-11-16 09:00:33

补充,安卓api版本是2.3.3

好听的两个字的网名 2021-11-16 08:35:49
W/dalvikvm(  353): JNI WARNING: jarray 0x4056c238 points to non-array object (Lj
ava/lang/String;)
I/dalvikvm(  353): "WebViewCoreThread" prio=5 tid=17 NATIVE
I/dalvikvm(  353):   | group="main" sCount=0 dsCount=0 obj=0x40660e70 self=0x300
548
I/dalvikvm(  353):   | sysTid=373 nice=0 sched=0/0 cgrp=default handle=2875648
I/dalvikvm(  353):   | schedstat=( 5550638664 1662005847 262 )
I/dalvikvm(  353):   at android.webkit.WebViewCore.nativeTouchUp(Native Method)
I/dalvikvm(  353):   at android.webkit.WebViewCore.nativeTouchUp(Native Method)
I/dalvikvm(  353):   at android.webkit.WebViewCore.access$3300(WebViewCore.java:
53)
I/dalvikvm(  353):   at android.webkit.WebViewCore$EventHub$1.handleMessage(WebV
iewCore.java:1158)
I/dalvikvm(  353):   at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm(  353):   at android.os.Looper.loop(Looper.java:123)
I/dalvikvm(  353):   at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore
.java:629)
I/dalvikvm(  353):   at java.lang.Thread.run(Thread.java:1019)
I/dalvikvm(  353):
E/dalvikvm(  353): VM aborting
I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *
**
I/DEBUG   (   31): Build fingerprint: 'generic/sdk/generic:2.3.3/GRI34/101070:en
g/test-keys'
I/DEBUG   (   31): pid: 353, tid: 373  >>> com.googlecode.android_scripting <<<
I/DEBUG   (   31): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00
d
I/DEBUG   (   31):  r0 fffffec4  r1 deadd00d  r2 00000026  r3 00000000
I/DEBUG   (   31):  r4 800a45c0  r5 4056c238  r6 80085acc  r7 002e30e8
I/DEBUG   (   31):  r8 4548bb54  r9 44e8fe4c  10 44e8fe34  fp 41edd8a0
I/DEBUG   (   31):  ip 800a4720  sp 4548b348  lr afd19375  pc 80045a4a  cpsr 200
00030
I/DEBUG   (   31):          #00  pc 00045a4a  /system/lib/libdvm.so
I/DEBUG   (   31):          #01  pc 00037748  /system/lib/libdvm.so
I/DEBUG   (   31):          #02  pc 00039a10  /system/lib/libdvm.so
I/DEBUG   (   31):          #03  pc 0003a4ec  /system/lib/libdvm.so
I/DEBUG   (   31):          #04  pc 002989d6  /system/lib/libwebcore.so
I/DEBUG   (   31):          #05  pc 002120a4  /system/lib/libwebcore.so
I/DEBUG   (   31):          #06  pc 00113216  /system/lib/libwebcore.so
I/DEBUG   (   31):          #07  pc 00212b70  /system/lib/libwebcore.so
I/DEBUG   (   31):          #08  pc 002c716e  /system/lib/libwebcore.so
I/DEBUG   (   31):          #09  pc 002ca4c6  /system/lib/libwebcore.so
I/DEBUG   (   31):          #10  pc 002d83b0  /system/lib/libwebcore.so
I/DEBUG   (   31):          #11  pc 002cfae8  /system/lib/libwebcore.so
I/DEBUG   (   31):          #12  pc 0020ce24  /system/lib/libwebcore.so
I/DEBUG   (   31):          #13  pc 001a0966  /system/lib/libwebcore.so
I/DEBUG   (   31):          #14  pc 001a6ef4  /system/lib/libwebcore.so
I/DEBUG   (   31):          #15  pc 001a4d10  /system/lib/libwebcore.so
I/DEBUG   (   31):          #16  pc 001a4e1a  /system/lib/libwebcore.so
I/DEBUG   (   31):          #17  pc 001a80a2  /system/lib/libwebcore.so
I/DEBUG   (   31):          #18  pc 001a8236  /system/lib/libwebcore.so
I/DEBUG   (   31):          #19  pc 00065108  /system/lib/libwebcore.so
I/DEBUG   (   31):          #20  pc 00065cae  /system/lib/libwebcore.so
I/DEBUG   (   31):          #21  pc 001254e2  /system/lib/libwebcore.so
I/DEBUG   (   31):          #22  pc 001255da  /system/lib/libwebcore.so
I/DEBUG   (   31):          #23  pc 00125600  /system/lib/libwebcore.so
I/DEBUG   (   31):          #24  pc 00017d74  /system/lib/libdvm.so
I/DEBUG   (   31):
I/DEBUG   (   31): code around pc:
I/DEBUG   (   31): 80045a28 447a4479 ed0cf7d1 20004c09 ee34f7d1
I/DEBUG   (   31): 80045a38 447c4808 6bdb5823 d0002b00 49064798
I/DEBUG   (   31): 80045a48 700a2226 eea0f7d1 000436b7 00045275
I/DEBUG   (   31): 80045a58 0005eb82 fffffec4 deadd00d b510b40e
I/DEBUG   (   31): 80045a68 4c0a4b09 447bb083 aa05591b 6b5bca02
I/DEBUG   (   31):
I/DEBUG   (   31): code around lr:
I/DEBUG   (   31): afd19354 b0834a0d 589c447b 26009001 686768a5
I/DEBUG   (   31): afd19364 220ce008 2b005eab 1c28d003 47889901
I/DEBUG   (   31): afd19374 35544306 d5f43f01 2c006824 b003d1ee
I/DEBUG   (   31): afd19384 bdf01c30 000281a8 ffffff88 1c0fb5f0
I/DEBUG   (   31): afd19394 43551c3d a904b087 1c16ac01 604d9004
I/DEBUG   (   31):
I/DEBUG   (   31): stack:
I/DEBUG   (   31):     4548b308  00000015
I/DEBUG   (   31):     4548b30c  afd18407  /system/lib/libc.so
I/DEBUG   (   31):     4548b310  afd4270c  /system/lib/libc.so
I/DEBUG   (   31):     4548b314  afd426b8  /system/lib/libc.so
I/DEBUG   (   31):     4548b318  00000000
I/DEBUG   (   31):     4548b31c  afd19375  /system/lib/libc.so
I/DEBUG   (   31):     4548b320  00300548  [heap]
I/DEBUG   (   31):     4548b324  afd183d9  /system/lib/libc.so
I/DEBUG   (   31):     4548b328  002e30e8  [heap]
I/DEBUG   (   31):     4548b32c  0005eb82  [heap]
I/DEBUG   (   31):     4548b330  4056c238  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (   31):     4548b334  80085acc  /system/lib/libdvm.so
I/DEBUG   (   31):     4548b338  002e30e8  [heap]
I/DEBUG   (   31):     4548b33c  afd18437  /system/lib/libc.so
I/DEBUG   (   31):     4548b340  df002777
I/DEBUG   (   31):     4548b344  e3a070ad
I/DEBUG   (   31): #00 4548b348  00000001
I/DEBUG   (   31):     4548b34c  8003774d  /system/lib/libdvm.so
I/DEBUG   (   31): #01 4548b350  00000001
I/DEBUG   (   31):     4548b354  80039a15  /system/lib/libdvm.so
I/BootReceiver(   61): Copying /data/tombstones/tombstone_09 to DropBox (SYSTEM_
TOMBSTONE)
D/Zygote  (   33): Process 353 terminated by signal (11)
E/InputDispatcher(   61): channel '4081dd18 com.googlecode.android_scripting/com
.googlecode.android_scripting.activity.FutureActivity (server)' ~ Consumer close
d input channel or an error occurred.  events=0x8
E/InputDispatcher(   61): channel '4081dd18 com.googlecode.android_scripting/com
.googlecode.android_scripting.activity.FutureActivity (server)' ~ Channel is unr
ecoverably broken and will be disposed!
D/dalvikvm(   61): GC_FOR_MALLOC freed 1003K, 52% free 4253K/8775K, external 312
5K/3903K, paused 120ms
I/ActivityManager(   61): Process com.googlecode.android_scripting (pid 353) has
 died.
W/ActivityManager(   61): Scheduling restart of crashed service com.googlecode.a
ndroid_scripting/.activity.ScriptingLayerService in 5000ms
I/WindowManager(   61): WIN DEATH: Window{40727c48 com.googlecode.android_script
ing/com.googlecode.android_scripting.activity.ScriptManager paused=false}
I/WindowManager(   61): WIN DEATH: Window{4081dd18 com.googlecode.android_script
ing/com.googlecode.android_scripting.activity.FutureActivity paused=false}
I/ActivityManager(   61): Start proc com.googlecode.android_scripting for activi
ty com.googlecode.android_scripting/.activity.ScriptManager: pid=376 uid=10034 g
ids={3003, 1015, 1007, 3002, 3001, 1006}
D/dalvikvm(   61): GC_FOR_MALLOC freed 863K, 51% free 4349K/8775K, external 3125
K/3903K, paused 238ms
I/ActivityThread(  376): Pub com.googlecode.android_scripting.provider.apiprovid
er: com.googlecode.android_scripting.provider.ApiProvider
I/ActivityThread(  376): Pub com.googlecode.android_scripting.provider.scriptpro
vider: com.googlecode.android_scripting.provider.ScriptProvider
V/sl4a.InterpreterConfiguration$InterpreterListener:127(  376): Interpreter disc
overed: com.googlecode.pythonforandroid
V/sl4a.InterpreterConfiguration$InterpreterListener:127(  376): Binary: /data/da
ta/com.googlecode.pythonforandroid/files/python/bin/python
V/sl4a.InterpreterConfiguration$InterpreterListener:127(  376): Interpreter disc
overed: com.googlecode.pythonforandroid
V/sl4a.InterpreterConfiguration$InterpreterListener:127(  376): Binary: /data/da
ta/com.googlecode.pythonforandroid/files/python/bin/python
D/dalvikvm(  376): GC_CONCURRENT freed 1223K, 57% free 2908K/6727K, external 202
2K/2137K, paused 46ms+7ms
D/dalvikvm(  376): GC_CONCURRENT freed 749K, 56% free 2961K/6727K, external 2022
K/2137K, paused 24ms+21ms
W/InputManagerService(   61): Got RemoteException sending setActive(false) notif
ication to pid 353 uid 10034
I/ActivityManager(   61): Displayed com.googlecode.android_scripting/.activity.S
criptManager: +4s159ms
D/dalvikvm(  376): GC_CONCURRENT freed 737K, 57% free 2956K/6727K, external 2083
K/2137K, paused 6ms+24ms
D/dalvikvm(  295): GC_EXPLICIT freed 28K, 53% free 2564K/5379K, external 1625K/2
137K, paused 82ms
D/dalvikvm(  376): GC_FOR_MALLOC freed 18K, 57% free 2953K/6727K, external 2083K
/2137K, paused 80ms
I/dalvikvm-heap(  376): Grow heap (frag case) to 7.545MB for 87396-byte allocati
on
D/dalvikvm(  376): GC_FOR_MALLOC freed 18K, 56% free 3020K/6855K, external 2083K
/2137K, paused 71ms
D/dalvikvm(  376): GC_FOR_MALLOC freed 1K, 56% free 3018K/6855K, external 2083K/
2137K, paused 73ms
I/dalvikvm-heap(  376): Grow heap (frag case) to 7.609MB for 87396-byte allocati
on
D/dalvikvm(  376): GC_FOR_MALLOC freed 3K, 56% free 3100K/6983K, external 2083K/
2137K, paused 78ms

catlog信息是这样的。。继续求指点。。

网名女生简单气质 2021-11-15 19:03:32

logcat总会有点信息的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文