0
如何理解這些錯誤?這是與錯誤相關的所有日誌。所有其他都是GC類型的消息。如何調試dalvikvm拒絕操作碼?
01-07 19:14:08.536: W/dalvikvm(5780): VFY: register2 v4-5 values 6,24
01-07 19:14:08.536: W/dalvikvm(5780): VFY: rejecting opcode 0xce at 0x004a
01-07 19:14:08.536: W/dalvikvm(5780): VFY: rejected Lnz/co/great_ape/headsup/sat_track/SGP4unit_sgp4;.sgp4 (Lnz/co/great_ape/headsup/sat_track/SGP4SatData;D[D[D)Z
01-07 19:14:08.536: W/dalvikvm(5780): Verifier rejected class Lnz/co/great_ape/headsup/sat_track/SGP4unit_sgp4;
我知道代碼,它約爲400行sgp4 satellite tracking software
(不是我的代碼)。
當我創建這個類的一個實例的問題被觸發(這是長400條多線)和我已經簡單地註釋掉所有代碼下來跟蹤的問題的這部分代碼,然後取消註釋部分,直到錯誤返回,
這裏的所有變量都是雙打。那麼,爲什麼android拒絕這個代碼與操作碼像OP_DIV_DOUBLE和OP_DIV_DOUBLE_2ADDR
任何方式,這裏是代碼段。
/* -------------- update for short period periodics ------------ */
if(satrec.method == 'd')
{
cosisq = cosip * cosip;
satrec.con41 = 3.0 * cosisq - 1.0;
satrec.x1mth2 = 1.0 - cosisq;
satrec.x7thm1 = 7.0 * cosisq - 1.0;
}
mrt = rl * (1.0 - 1.5 * temp2 * betal * satrec.con41) +
0.5 * temp1 * satrec.x1mth2 * cos2u;
su = su - 0.25 * temp2 * satrec.x7thm1 * sin2u;
xnode = nodep + 1.5 * temp2 * cosip * sin2u;
xinc = xincp + 1.5 * temp2 * cosip * sinip * cos2u;
mvt = rdotl - nm * temp1 * satrec.x1mth2 * sin2u/xke;
rvdot = rvdotl + nm * temp1 * (satrec.x1mth2 * cos2u +
1.5 * satrec.con41)/xke;
糊滿logcat的錯誤 –
如果我猜的沒錯,你叫那些不支持你的設備上的功能。 – rekire
我搜索了操作碼OP_DIV_DOUBLE_2ADDR。訣竅是什麼功能不支持設備(聯網電話)。這一切看起來像我常用的數學函數。 – Rob