Android不能呼叫java.awt的原因及解決辦法和思考
android 裡面不能使用awt,底層沒有具體的實現awt
android裡面的視窗建立過程決定了介面只能是android裡面的組建。android的元件都是通過遠端的IPC呼叫完成的,也就是說服務端有什麼功能才能用什麼功能。
不是所有用java寫的程式都能在標準jvm中執行的。
android中的虛擬機器是修改過的,跟標準的JVM不同,比如對一張圖片的解析,android裡用Bitmap,而你想用其他方式,那麼在android底層裡並不能對你這種方式進行解析並勾畫出具體介面。
只有編寫android JVM能夠解析的程式碼,android才能執行,所以,如果遇到android底層沒有實現的程式碼,需要用android裡的東西去重構,可以根據自己的需求做一定的更改。
比如如下一個java.awt中的BufferedImage,這裡它的原始碼大概是這樣:
如果再你的專案中依然想用到BufferedImage,這裡你可以這樣改寫,使用android底層能夠支援的方法介入:
當然,其中如果有其他的類是android底層不支援的,你也需要進行重構,如此直到所有的類都是android能夠“認識”的,那麼恭喜你,這些程式碼可以在Android裝置上跑起來了。
相關推薦
Android不能呼叫java.awt的原因及解決辦法和思考
android 裡面不能使用awt,底層沒有具體的實現awt android裡面的視窗建立過程決定了介面只能是android裡面的組建。 android的元件都是通過遠端的IPC呼叫完成的,也就是說服務端有什麼功能才能用什麼功能。 不是所有用java寫的程式都能在標準jv
關於面試經常被問到的socket的TIME_WAIT狀態的原因及解決辦法和避免的辦法
一檢視現在time_wait的數量及淺析 netstat -an | grep TIME_WAIT | wc -l 發現系統存在大量TIME_WAIT狀態的連線,通過調整核心引數解決,在 /etc/sysctl.conf中加入net.ipv4.tcp_tw_r
android中java.lang.IllegalStateException異常產生的原因及解決辦法
11-09 13:33:56.080: E/MediaRecorder(19865): stop called in an invalid state: 0 11-09 13:33:56.080: I/MediaRecorder(19865): stop 11-09 13:
java.sql.SQLException: 無法轉換為內部表示原因及解決辦法
今天在寫完sql語句,執行時報如下錯誤: java.sql.SQLException: 無法轉換為內部表示; 第一次遇到這個問題,反覆檢視sql,在pl/sql裡執行sql語句都是正常的;查閱資料,才發現是自己將查詢結果對映成vo物件時,資料型別不一致造成的。 問題原因: 資料庫中欄位型別和
Java記憶體各部分OOM出現原因及解決辦法
原文:https://blog.csdn.net/ls5718/article/details/52411211?utm_source=copy 一,jvm記憶體區域 1, 程式計數器 一塊很小的記憶體空間,作用是當前執行緒所執行的位元組碼的行號指示器。
java編碼,解碼。亂碼原因及解決辦法
轉換流的編碼,常見的出現亂碼組合 package com.qianfeng.test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import
Java連結Redis時出現 “ERR Client sent AUTH, but no password is set” 異常的原因及解決辦法
第一種情況: 在redis.conf中設定了密碼,而且redis還啟動了,為什麼說沒有密碼呢? linux下啟動redis有很多種方法, 方式一: ./redis-server & 這種方法啟動,不會帶上你的redis.conf配置檔案啟動 方式二:還有
Java連線Redis時出現 “ERR Client sent AUTH, but no password is set” 異常的原因及解決辦法
給redis設定過auth後發現還是出現這種情況,這是由於啟動redis時自動載入的redis配置檔案並不是我們配置的那個,我在服務中找到redis: 右擊redis選擇屬性 這裡發現redis啟動時使用我們之前配置在環境變數裡的.exe檔案,先將服務停止
Java鏈接Redis時出現 “ERR Client sent AUTH, but no password is set” 異常的原因及解決辦法
edit 解決 apach 重新啟動 cti cau 文本編輯 cto coder Java鏈接Redis時出現 “ERR Client sent AUTH, but no password is set” 異常的原因及解決辦法 【錯誤提
java.lang.NoSuchMethodError 錯誤的原因及解決辦法
不多說,先貼上錯誤 =========== 詳細: org.springframework.context.ApplicationContextException: Unable to start embedded container; nest
java.lang.UnsatisfiedLinkError: no jacob-1.18-x64 in java.library.path錯誤的原因及解決辦法
ComThread.InitSTA() 不能執行的原因 出現異常:java.lang.UnsatisfiedLinkError: no jacob-1.18-x64 in java.library.p
造成java.lang.NoClassDefFoundError錯誤的原因及解決辦法
1、專案依賴的jar包未全部匯入; 如:java.lang.NoClassDefFoundError: Could not initialize class com.esms.common.util.XmlUtil,當你去查這個類的時候發現這個類是存在,之所以抱著個錯是 因
轉:java.lang.IllegalStateException異常產生的原因及解決辦法
錯誤型別大致為以下幾種: java.lang.IllegalStateException:Cannot forward a response that is already committed IllegalStateExce
Android使用adb命令時提示提示“CANNOT LINK EXECUTABLE: cannot ...”的原因及解決辦法
錯誤提示:使用adb命令時,顯示: CANNOT LINK EXECUTABLE: cannot locate symbol "__umask_chk" referenced by "/system/bin/sh"... 或者 CANNOT LINK EXECUTABLE:
android ANR產生情況、發生原因及解決辦法
ANR (Application Not Responding) ANR定義:在Android上,如果你的應用程式有一段時間響應不夠靈敏,系統會向用戶顯示一個對話方塊,這個對話方塊稱作應用程式無響應(ANR:Application Not Respondi
nginx “403 Forbidden” 錯誤的原因及解決辦法
所有 html 網上 查找 lan href 原因 我沒 分配 ————————————————————————————————首先 錯誤的原因及解決辦法 ———————————————————————————————————————————————————— ng
Windows資源管理器打開文件夾卡頓原因及解決辦法
打開 監視器 啟用 div xpl 通過 windows 資源 解決方法 全新安裝的 Win8 打開文件夾居然會卡頓,特別是打開EXE程序比較多的文件夾,通過資源監視器查看,幕後兇手就是 Windows Defender 殺毒軟件。 MSE是微軟提供防毒功能,而Window
codeblocks中文亂碼原因及解決辦法
文字 win 編輯器 odin bsp block set lang -c 原因:(本地化做得不夠好)默認情況下codeblocks編輯器保存源文件是保存為windows本地編碼,就是WINDOWS-936字符集,即GBK;但CB的編輯器在默認編輯的時候是按照UTF-8來解
電腦藍屏問題引起原因及解決辦法
藍屏 windows藍屏故障(1)STOP消息0X0000000A故障引起原因:一般是由於新安裝了什麽設備,而設備的驅動程序使用了不正常的內存地址,這種情況下我們需要確保硬件的驅動程序與系統要兼容。解決方法:去除新安裝的設備,更換硬件或系統。(2)STOP消息0X00000023或者0X00000024故障
tomcat假死 (原因及解決辦法)
空間 error: 解決 -h 多人 lan 特殊 sun out 一、懷疑JVM內存溢出 表現:tomcat就連續拋java.lang.OutOfMemoryError的錯誤 1、首先是:java.lang.OutOfMemoryError: Java heap