国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OTA編譯報Exception in thread “main“ java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk

這篇具有很好參考價值的文章主要介紹了OTA編譯報Exception in thread “main“ java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、問題引入

1.1 背景

? ? ? ? 預(yù)置條件:已編譯出2個版本的target包;

? ? ? ? 問題引入:項目需要本地驗證當前項目是否可以編譯出OTA差分包和全量包,并通過差分包和全量包成功完成測試機系統(tǒng)版本升級(這里重點討論編譯差分包過程中遇到的問題)

1.2 編譯命令

編譯OTA的命令:
./build/tools/releasetools/ota_from_target_files -p out/host/linux-x86 -k device/qcom/common/security/releasekey -s device/qcom/common/releasetools.py ?-v --block -i ota/qssi-target_files-eng1126.zip ota/qssi-target_files-eng1201.zip ota/ota1126_to_1201.zip

參數(shù)描述:
第一個為制作OTA的腳本工具;
-s后面為mtk的插入腳本工具;
-k后面為項目簽名(如果項目有專門簽名,那么就是device/mediatek/common/security/<project>/releasekey,如果項目沒有定制簽名就用平臺簽名build/target/product/security/ releasekey)
-v ?顯示正在執(zhí)行的命令
--block 基于block更新,代碼生成基于塊的升級包,其實已經(jīng)沒有意義了。android P的代碼,不再支持基于文件的升級包
-p 指定在做包過程中用于搜索相應(yīng)的bin程序和jar包的路徑
-i 制作差分包
-k 表示用后面緊跟的密鑰重新簽名升級包。

二、問題處理過程

2.1 no module protobuf

? ? ? ? 問題描述:使用ota腳本編譯OTA報錯:ImportError: No module named google.protobuf

????????問題原因:python環(huán)境中缺少google.protobuf,通過如下命令安裝該工具

pip install google
pip install protobuf

2.2 python版本語法問題

? ? ? ? 問題描述:使用ota腳本編譯OTA報錯如下:

File "/media/user/code2/aosp/qssi/build/make/tools/releasetools/common.py", line 1672
f"GKI boot_signature size must be <= {BOOT_SIGNATURE_SIZE}")

? ? ? ? 問題原因:python版本導致的語法問題,這里使用python2的環(huán)境編譯了python3語法的代碼,只需要把報錯的腳本代碼修改為python3的語法即可,例如將上述語句修改為:

"GKI boot_signature size must be <= {}".format(BOOT_SIGNATURE_SIZE)

? ? ? ? 另外,切換當前系統(tǒng)python版本的方法如下:

? ? ? ? (1)列出可用的python替代版本:

update-alternatives --list python?

? ? ? ? (2)在列出的python替代版本中選擇對應(yīng)的python版本,選擇需要的python版本序號回車確定即可:

sudo update-alternatives --config python

? ? ? ? 注:如果上述(1)中報如下錯誤,則表示 Python 的替代版本尚未被update-alternatives 命令識別,需要對該版本的python進行安裝,安裝命令如下第2、3條

update-alternatives: error: no alternatives for python
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1  
update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 

三、JDK版本導致的報錯

3.1 報錯信息

? ? ? ? 詳細報錯信息如下:

ExternalError: Failed to run signapk.jar: return code 1:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
......

?3.2 問題分析和解決

????????根據(jù)報錯分析是因為用于編譯jar文件的jdk版本不一致導致,適用于jdk8的Java類版本是52,適用于jdk11的Java類版本是55,解決方法如下:

? ? ? ? (1)首先用如下命令查看jdk版本,我之前的版本是openjdk-8

java --version

? ? ? ? (2)使用如下命令安裝openjdk-11

sudo apt-get install openjdk-11-jdk

? ? ? ? (3)使用如下命令配置linux默認jdk版本,選擇你需要的JDK版本

sudo update-alternatives --config java

? ? ? ? (4)使用如下命令配置默認java版本,選擇你需要的 java 版本。

sudo update-alternatives --config javac 

四、swap分區(qū)不足問題

4.1 問題描述

? ? ? ? 編譯OTA時用到的target包是通過項目代碼整編獲取的,最終生成的target包位于項目的如下目錄中:

out/target/product/qssi/obj/PACKAGING/target_files_intermediates/

? ? ? ? 而當整編項目代碼時,有一種編譯失敗,報錯中會有這樣一句:Clang SA is not enabled,這樣的報錯一般都是因為swap分區(qū)不足造成的,只需要增大Linux系統(tǒng)swap分區(qū)的大小即可。

4.2 swap分區(qū)擴展

? ? ? ? 1.1 查看當前swap分區(qū)的大?。?/p>

free -h

? ? ? ? 1.2 總內(nèi)存為3.7G,交換分區(qū)大小為500M;?

exception in thread

? ? ? ? ?2.1 創(chuàng)建大小為4G的空間

dd if=/dev/zero of=/swap1 bs=1M count=4096

? ? ? ? 2.2?if 表示infile,of表示outfile,bs=1M代表增加的模塊大小,count=4096代表4096個模塊,也就是4G空間

exception in thread

? ? ? ? ?3.?將目的文件設(shè)置為swap分區(qū)文件

mkswap /swap1

? ? ? ? 4.?激活swap,立即啟用交換分區(qū)文件

swapon <swap_file>
例如:swapon /swap1

? ? ? ? 5.?free -h查看swap已經(jīng)增加了,但這只是臨時性的,如果機器重啟會失效

exception in thread

? ? ? ? 6.1 設(shè)置開機自動掛載?

vi /etc/fstab

? ? ? ? 6.2?最后一行添加

/swap1          swap     swap    defaults        0 0

? ? ? ? 7. 重啟測試,測試成功!內(nèi)存增加

exception in thread

?文章來源地址http://www.zghlxwxcb.cn/news/detail-661354.html

到了這里,關(guān)于OTA編譯報Exception in thread “main“ java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 運行java項目時Exception in thread “main“ java.lang.UnsupportedClassVersionError解決辦法

    運行java項目時Exception in thread “main“ java.lang.UnsupportedClassVersionError解決辦法

    本地終端CMD運行java項目時,Exception in thread “main“ java.lang.UnsupportedClassVersionError,報錯截圖: 1、解決措施就是保證jvm(java命令)和jdk(javac命令)版本一致。如果是windows版本,則在命令行中分別輸入java -version和javac -version命令來查看版本是否一致。 發(fā)現(xiàn)java版本為1.8.0,而

    2024年02月11日
    瀏覽(34)
  • 已解決Exception in thread “main“ java.lang.NullPointerException

    已解決Exception in thread “main” java.lang.NullPointerException Exception in thread “main“ java.lang.NullPointerException 對于異常 “Exception in thread “main” java.lang.NullPointerException” 的詳細解決方法 下滑查看解決方法 可以按照以下步驟進行處理: 確定異常的位置:根據(jù)異常信息中提供的線程和

    2024年01月22日
    瀏覽(40)
  • 已解決:Exception in thread “main“ java.lang.NoSuchMethodError

    已解決:Exception in thread “main“ java.lang.NoSuchMethodError

    分為兩種情況,如果找不到自己寫的某個方法,一般是main函數(shù)沒加static之類的。這里討論第二種情況:找不到第三方包中的某個方法。 這樣的情況大概率是因為這個報錯的包在Maven依賴中存在多個版本,存在版本沖突。如下面的報錯就是因為google.protobuf這個包有多個版本,而

    2024年02月08日
    瀏覽(107)
  • Exception in thread “main“ java.lang.reflect.InvocationTargetException

    Exception in thread “main“ java.lang.reflect.InvocationTargetException

    idea中app后臺本地運行成功,但是打成jar包后運行,失敗報錯如下 原因分析:jar包運行存在問題,項目中有dockerfile文件,直接執(zhí)行java -jar會報錯,因為dockerfeil文件中配置了啟動jar包的命令: ? ?

    2024年02月08日
    瀏覽(28)
  • 已解決 Java Error: Exception in thread ‘main‘ java.lang.ClassNotFoundException

    已解決 Java Error: Exception in thread ‘main‘ java.lang.ClassNotFoundException

    ???? 博主貓頭虎(????)帶您 Go to New World??? ?? 博客首頁 : ????貓頭虎的博客?? 《面試題大全專欄》 ?? 文章圖文并茂??生動形象??簡單易學!歡迎大家來踩踩~?? 《IDEA開發(fā)秘籍專欄》 ?? 學會IDEA常用操作,工作效率翻倍~?? 《100天精通Golang(基礎(chǔ)入門篇)》 ??

    2024年02月03日
    瀏覽(50)
  • poi報錯 Exception in thread “main“ java.lang.NoSuchFieldError: Factory

    背景:要實現(xiàn)一個需求,按照word模板合成一定的內(nèi)容,給到前端,但是卻跌到在了第一步,就是這個依賴的問題上 這個問題歸根到底就是這個依賴沖突問題, 可是讓我奇怪的是我用那個依賴分析器解決了poi-tl文件的沖突,因為我之前還使用了ali的easyexcel好多使用這個poi-相關(guān)

    2024年02月07日
    瀏覽(28)
  • Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Servlet

    缺少jar包 jar包沖突 先查看pom文件中是否引入了對應(yīng)的依賴,如果沒有的話,需要引入: 如果是從 Maven Repository 上面獲取的依賴記得要 刪除scop 這一行,我就是網(wǎng)上找了幾百種方法,才發(fā)現(xiàn)是這個問題!

    2024年02月13日
    瀏覽(43)
  • 已解決 Java Error: Exception in thread ‘main‘ java.lang.NullPointerException BUG 》

    已解決 Java Error: Exception in thread ‘main‘ java.lang.NullPointerException BUG 》

    ???? 博主貓頭虎(????)帶您 Go to New World??? ?? 博客首頁 : ????貓頭虎的博客?? 《面試題大全專欄》 ?? 文章圖文并茂??生動形象??簡單易學!歡迎大家來踩踩~?? 《IDEA開發(fā)秘籍專欄》 ?? 學會IDEA常用操作,工作效率翻倍~?? 《100天精通Golang(基礎(chǔ)入門篇)》 ??

    2024年02月07日
    瀏覽(29)
  • 報錯:springboot項目啟動,Exception in thread “main“ java.lang.NoClassDefFoundError: org/springframework/com

    報錯:springboot項目啟動,Exception in thread “main“ java.lang.NoClassDefFoundError: org/springframework/com

    ?異常處理:當啟動springboot項目時,報錯Exception in thread \\\"main\\\" java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup 報錯截圖: 解決措施:找到pom.xml,將其 這個部分替換為可運行的springboot項目的(一般為版本問題) 。

    2024年02月16日
    瀏覽(33)
  • sparkbug解決:Exception in thread “main“ java.lang.UnsupportedOperationException: No Encoder found for

    報錯: 問題原因: Spark SQL中的 Dataset 類需要一個編碼器來將JVM對象序列化為內(nèi)部的Spark SQL格式。而對于復(fù)雜類型(比如 Row 或者自定義類),Spark 需要隱式的 Encoder ,代碼因為缺少這樣的編碼器,所以會導致 UnsupportedOperationException 異常。 附上代碼 問題解決: 添加 Encoders.kr

    2024年02月04日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包