日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于realarm210 realarmTest.apk不能直接安装问题解决方法

發(fā)布時(shí)間:2024/9/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于realarm210 realarmTest.apk不能直接安装问题解决方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在使用real210開發(fā)板時(shí)可能會(huì)遇到這個(gè)問題,realarmTest.apk無法通過adb、手機(jī)助手、從SD卡安裝。

用adb方式安裝時(shí)出現(xiàn)這樣的錯(cuò)誤Failure [INSTALL_FAILED_INVALID_INSTALL_LOCATION]

用手機(jī)助手和從SD安裝時(shí)是無法發(fā)送和無法安裝的錯(cuò)誤。


這樣安裝不行的原因是,realarmTest.apk是要使用系統(tǒng)權(quán)限,android對于底層調(diào)用比較嚴(yán)格,所以這個(gè)apk無法使用常規(guī)方法安裝。


解決方法是不使用adb install命令安裝,換成adb push命令安裝,adb push命令格式為:adb push 要發(fā)送的文件名 開發(fā)板的文件目錄,要實(shí)現(xiàn)安裝需要push到system/app目錄下。

舉例說:加入在pc端當(dāng)前目錄下要發(fā)送realarmTest.apk文件,那么命令是adb push realarmTest.apk /system/app,發(fā)送完成后,android系統(tǒng)會(huì)自動(dòng)安裝這個(gè)應(yīng)用。

相對于adb install安裝這里只是改成了adb push方式,并沒有增加什么工作量。


下面說下兩種編譯這個(gè)realarmTest.apk目標(biāo)文件的方法。

一個(gè)是在原目錄樹下使用mm命令編譯。關(guān)于mm命令參考博客http://blog.csdn.net/wang_shuai_ww/article/details/21379403

realarmTest.apk的源碼在源目錄樹下/packages/apps/realarmTest,首先進(jìn)入該源碼目錄,cd?/packages/apps/realarmTest然后使用mm命令進(jìn)行編譯即可,編譯完成后會(huì)在out/target/product/generic/system/app/這個(gè)路徑下生成需要的apk文件。

如果你用的是沒有動(dòng)過的源碼,那么out/target/product/generic/system/app/這個(gè)路徑下應(yīng)該會(huì)有兩個(gè)文件,一個(gè).apk一個(gè)是.odex文件,用資源管理器打開apk時(shí)發(fā)現(xiàn)里面缺少文件classes.dex,當(dāng)然了這個(gè)apk也是無法安裝的。

解決方式是,打開/build/core/package.mk文件找到這一行LOCAL_DEX_PREOPT := true,然后修改成LOCAL_DEX_PREOPT := false即可,重新編譯即可得到我們需要的完整apk了(注意要?jiǎng)h除out/target/product/generic/system/app目錄下之前的apk文件,否則不會(huì)生成新的完整apk的)。


另外 一個(gè)方法就是使用eclipse來進(jìn)行編譯了

該方法能夠通過編譯,但是安裝后顯示是不太正常的,推薦使用上一中方法。

這里貼上顯示問題的圖片:



另外使用該方法還需要使用系統(tǒng)簽名工具,所以挺麻煩的,用mm命令在目錄樹下編譯還方便些。


下面給出在eclipse下搭建該工程以及設(shè)置,并解決上面的顯示問題。

首先找到該realarmTest.apk源碼,位置/packages/apps/realarmTest,把realarmTest整個(gè)目錄拷貝到用戶的目錄,然后打開eclipse使用file->import命令選擇導(dǎo)入android外部的代碼工作目錄,如下圖:


然后瀏覽到剛才拷貝的源碼目錄點(diǎn)擊finish即可。

添加完成后eclipse應(yīng)該會(huì)創(chuàng)建一些其他的folder,其中有一個(gè)是我們工程不需要的如下圖所示,并按照下圖所示的操作把該folder刪除,不刪除會(huì)報(bào)錯(cuò)


之后就可以編譯了。完成后在realarmTest/bin下就有打包的apk文件了,當(dāng)然這個(gè)apk是不能使用的,對android工程的AndroidManifest.xml這個(gè)文件需要修改,添加一行代碼,如下圖所示


即添加<supports-screens android:largeScreens="true"/>這一行,原因是開發(fā)板的屏幕在android看來屬于高分辨率,所以這里的largeScreens屬性設(shè)置為true,那么android系統(tǒng)就會(huì)正確識(shí)別圖片并能按預(yù)定的比例正確顯示了。

修改完成后,重新編譯,在bin目錄下得到apk文件。前面說了,該apk需要系統(tǒng)權(quán)限,所以需要進(jìn)行系統(tǒng)簽名才可正常使用。下面說明怎么對這個(gè)apk進(jìn)行系統(tǒng)簽名。

要用到的工具為signapk.jar位置在/out/host/linux-x86/framework/。有了這工具我們還需要兩個(gè)簽名文件platform.pk8和platform.x509.pem,位置在build\target\product\security然后把要簽名的apk、簽名工具、platform.pk8和platform.x509.pem都放到一個(gè)目錄下,在終端輸入命令:java -jar signapk.jar platform.x509.pem platform.pk8 ./realarmTest.apk ./realarmTest_sign.apk即可完成簽名,得到的realarmTest_sign.apk即可通過push命令安裝在開發(fā)板上了。

為了方便我做了一個(gè)文件和一個(gè)腳本,在終端直接運(yùn)行腳本即可在我做的這個(gè)文件夾下得到簽名后的apk,如果連接了開發(fā)板的話,把該腳本的最后一行打開即可直接安裝。

文件下載地址為:http://yunpan.cn/QIsqBv2vbXIqz


當(dāng)出現(xiàn)這個(gè)提示時(shí):Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.請檢查下圖所示部分是否刪除:






總結(jié)

以上是生活随笔為你收集整理的关于realarm210 realarmTest.apk不能直接安装问题解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。