例 16.4 绘制挖取后图片问题
发表在Android图书答疑 2019-07-29 《Android开发详解》第16章 图形图像处理技术 406页-406页
是否精华
版块置顶:

按照书上步骤编写完成之后运行程序提示

2019-07-29 19:28:41.548 2218-2245/system_process E/system_server: Invalid ID 0x00000000.
2019-07-29 19:28:41.567 12363-12363/? E/n.app04_drawpi: Unknown bits set in runtime_flags: 0x8000
2019-07-29 19:28:41.590 2394-2394/com.google.android.apps.nexuslauncher E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2019-07-29 19:28:41.590 2394-2394/com.google.android.apps.nexuslauncher E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2019-07-29 19:28:41.832 1980-2634/? E/SurfaceFlinger: ro.sf.lcd_density must be defined as a build property
2019-07-29 19:28:41.832 1980-2634/? E/SurfaceFlinger: ro.sf.lcd_density must be defined as a build property
2019-07-29 19:28:42.071 12363-12736/com.edesoon.app04_drawpic E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2019-07-29 19:28:42.072 12363-12736/com.edesoon.app04_drawpic E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2019-07-29 19:28:42.092 12363-12363/com.edesoon.app04_drawpic E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/img01.jpg: open failed: ENOENT (No such file or directory)
2019-07-29 19:28:42.093 12363-12363/com.edesoon.app04_drawpic E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.edesoon.app04_drawpic, PID: 12363
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.isRecycled()' on a null object reference
        at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:65)
        at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:277)
        at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:69)
        at com.edesoon.app04_drawpic.MainActivity$MyView.onDraw(MainActivity.java:56)
        at android.view.View.draw(View.java:21423)
        at android.view.View.updateDisplayListIfDirty(View.java:20300)
        at android.view.View.draw(View.java:21155)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20291)
        at android.view.View.draw(View.java:21155)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20291)
        at android.view.View.draw(View.java:21155)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20291)
        at android.view.View.draw(View.java:21155)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20291)
        at android.view.View.draw(View.java:21155)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.updateDisplayListIfDirty(View.java:20291)
        at android.view.View.draw(View.java:21155)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21426)
        at com.android.internal.policy.DecorView.draw(DecorView.java:800)
        at android.view.View.updateDisplayListIfDirty(View.java:20300)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:575)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:581)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:654)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:3608)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3416)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2753)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7595)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
        at android.view.Choreographer.doCallbacks(Choreographer.java:790)
        at android.view.Choreographer.doFrame(Choreographer.java:725)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7319)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
2019-07-29 19:28:42.106 2218-2242/system_process E/system_server: Invalid ID 0x00000000.
2019-07-29 19:28:42.210 2218-7893/system_process E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2019-07-29 19:28:42.210 2218-7893/system_process E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2019-07-29 19:28:42.649 2394-2394/com.google.android.apps.nexuslauncher E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2019-07-29 19:28:42.657 2394-2394/com.google.android.apps.nexuslauncher E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2019-07-29 19:28:42.657 2394-2394/com.google.android.apps.nexuslauncher E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2019-07-29 19:28:42.663 5066-5759/com.google.android.googlequicksearchbox:search E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2019-07-29 19:28:42.664 5066-5759/com.google.android.googlequicksearchbox:search E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2019-07-29 19:28:42.712 2394-2394/com.google.android.apps.nexuslauncher E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2019-07-29 19:29:07.924 2218-2249/system_process E/memtrack: Couldn't load memtrack module

经过打断点调试之后发现bitmap为null

分享到:
精彩评论 10
三生石
学分:2171 LV10
TA的每日心情
11
2018-12-20 21:21:04
2019-07-30
沙发

您好读者!首先确认一下自己是否向测试的手机或模拟器中导入对应名称的图片呢?

ericcho
学分:11 LV2
2019-07-31
板凳

三生石 发表于2019-07-30 16:32

您好读者!首先确认一下自己是否向测试的手机或模拟器中导入对应名称的图片呢?

你好,老师:
我按照书中的步骤向模拟器的sdcard 路径上传了图片,通过调试发现bitmap是空的。

01.png


然后通过打断点调试发现Path的目录为/storage/emulated/0。于是把图片放在了此目录下。但是bitmap对象依然为空,如下图:

02.png


三生石
学分:2171 LV10
TA的每日心情
11
2018-12-20 21:21:04
2019-07-31
地板

您好读者!确认您已经开启文件读取的权限了么?不仅代码中需要写,模拟器中也需要开启访问sd权限!

ericcho
学分:11 LV2
2019-07-31
4L

三生石 发表于2019-07-31 13:18

您好读者!确认您已经开启文件读取的权限了么?不仅代码中需要写,模拟器中也需要开启访问sd权限!

是这个吧,老师?权限.png


三生石
学分:2171 LV10
TA的每日心情
11
2018-12-20 21:21:04
2019-07-31
5L

您好读者!您使用的是哪个版本的开发环境?

ericcho
学分:11 LV2
2019-07-31
6L

三生石 发表于2019-07-31 15:43

您好读者!您使用的是哪个版本的开发环境?

公司开发要求使用的AS 3.4

三生石
学分:2171 LV10
TA的每日心情
11
2018-12-20 21:21:04
2019-08-01
7L

您好读者!您可以尝试将图片拷贝到真机根目录下测试看看!使用as3.4测试源码并没有任何问题!

ericcho
学分:11 LV2
2019-08-01
8L

三生石 发表于2019-08-01 09:31

您好读者!您可以尝试将图片拷贝到真机根目录下测试看看!使用as3.4测试源码并没有任何问题!

老师,您好,我在真机测试了下,闪退。要不我把我代码通过邮件发您,您帮我看下什么原因。


ericcho
学分:11 LV2
2019-08-01
9L

ericcho 发表于2019-08-01 10:18

老师,您好,我在真机测试了下,闪退。要不我把我代码通过邮件发您,您帮我看下什么原因。


老师,您好。测试通过了,是软件的问题,把模拟器删除重新添加了一下,然后工程缓存清理了一下。就可以了

三生石
学分:2171 LV10
TA的每日心情
11
2018-12-20 21:21:04
首页上一页 1 下一页尾页 10 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照