Det gick inte att omsluta LOB-programmet
Den här artikeln löser felmeddelandet som inträffar när du försöker omsluta en verksamhetsspecifik app med hjälp av Microsoft Intune App Wrapping Tool för Android.
Symptom
När du omsluter en LOB-app med hjälp av Microsoft Intune App Wrapping Tool för Android kraschar verktyget och du får ett felmeddelande som liknar följande:
DBG [APKTool] Slutför kodningskatalogen i APK-filen:<sökvägen till .apk>
Utförliga WRN-loggar finns på: <sökvägen till .apk loggfil>.
ERR Programmet kunde inte omslutas.
org.jf.util.ExceptionWithContext: Ett undantag inträffade när code_item skrevs för metodmetodnamnet <>
org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java:825)
org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:268)
org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:246)
brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:61)
brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:36)
brut.androlib.Androlib.buildSourcesSmali(Androlib.java:417)
brut.androlib.Androlib.buildSources(Androlib.java:348)
brut.androlib.Androlib.build(Androlib.java:300)
com.microsoft.intune.mam.apppackager.utils.APKToolWrapper.encodeAPK(APKToolWrapper.java:172)
com.microsoft.intune.mam.apppackager.AppPackager.packageApp(AppPackager.java:111)
com.microsoft.intune.mam.apppackager.PackagerMain.mainInternal(PackagerMain.java:213)
com.microsoft.intune.mam.apppackager.PackagerMain.main(PackagerMain.java:57)
org.jf.util.ExceptionWithContext: Fel vid skrivning av instruktioner vid kodförskjutning 0x13
org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:1098)
org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java:821)
org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:268)
org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:246)
brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:61)
brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:36)
brut.androlib.Androlib.buildSourcesSmali(Androlib.java:417)
brut.androlib.Androlib.buildSources(Androlib.java:348)
brut.androlib.Androlib.build(Androlib.java:300)
com.microsoft.intune.mam.apppackager.utils.APKToolWrapper.encodeAPK(APKToolWrapper.java:172)
com.microsoft.intune.mam.apppackager.AppPackager.packageApp(AppPackager.java:111)
com.microsoft.intune.mam.apppackager.PackagerMain.mainInternal(PackagerMain.java:213)
com.microsoft.intune.mam.apppackager.PackagerMain.main(PackagerMain.java:57)
org.jf.util.ExceptionWithContext: Osignerat kort värde utanför intervallet: <65536 eller ett värde som är större än 65536>
org.jf.dexlib2.writer.DexDataWriter.writeUshort(DexDataWriter.java:116)
org.jf.dexlib2.writer.InstructionWriter.write(InstructionWriter.java:348)
org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:1058)
Orsak
Problemet uppstår om LOB-appen når eller nästan når 64K-metodreferensgränsen för DEX-filer. I det här scenariot kan Microsoft Intune-omslutningsverktyget inte lägga till nödvändig Intune kod i appen utan att överskrida den här gränsen.
Lösning
Åtgärda problemet genom att utföra följande steg.
- Installera den senaste versionen av Microsoft Intune App Wrapping Tool för Android.
- Aktivera multidex för din Android-app.
Testa om problemet är åtgärdat. Om problemet kvarstår kan du prova följande metoder i den angivna ordningen:
Granska multidex-konfigurationen för att se om du anger några klasser i den primära DEX-filen. Du kan få problem om för många klasser läggs till i den primära DEX-filen. Mer information finns i https://developer.android.com/studio/build/multidex#keep.
Du kan undvika det här problemet genom att minska antalet klasser som anges i den primära DEX-filen.
Aktivera krympning av kod med hjälp av ProGuard. Mer information finns i https://developer.android.com/studio/build/shrink-code#shrink-code.
Obs!
Vissa bibliotek från tredje part kan kräva ytterligare ProGuard-konfiguration.
Mer information
Mer information om referensgränsen för 64K-metoder för DEX-filer finns i Aktivera multidex för appar med över 64 000 metoder.
Ansvarsfriskrivning för information från tredje part
De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.
Ansvarsfriskrivning för tredje part
Microsoft tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta ytterligare information om det här ämnet. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att kontaktinformation från tredje part är korrekt.