classes.dex, созданный smali, не работает в .apk - PullRequest
2 голосов
/ 10 марта 2012

Я попытался сгенерировать .apk из файла classes.dex, созданного samli.Но я получаю следующие ошибки:

Сбой [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE] (когда я пытаюсь установить .apk на эмуляторе)

Сбой [INSTALL_PARSE_FAILED_INCONSIFICATESENTIN]* (когда я пытаюсь установить .apk на свой телефон).

Вот шаги, которые я сделал:

  1. Извлеченный classes.dex из существующего .apk
  2. . / Baksmali classes.dex
  3. . / Smali out
  4. mv out.dex classes.dex
  5. Извлек весь контент .apk в папке и заменилclasses.dex, который новый
  6. сгенерировал .zip-файл и переименовал его в * .apk
  7. , подписав приложение: jarsigner -verbose -keystore my-release-key.keystore MyFieldTest.apk mykey

Вот начало манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        android:sharedUserId="android.uid.phone"
            package="com.htc.fieldtest"
            android:versionCode="1"
            android:versionName="1.0" >

<application android:label="Field Test">
    <activity android:label="@string/app_name" 
              android:name="FieldTestActivity" 
              android:process="com.android.phone" 
              android:launchMode="singleInstance">

Я знаю, что приложение было сначала подписано разработчиком HTC, а теперь и мной.Но есть ли возможность исправить проблему?

Спасибо!Felix

1 Ответ

3 голосов
/ 11 марта 2012

Похоже, у вас может быть несколько подписей в новых файлах apk. Попробуйте удалить файлы в каталоге META-INF перед созданием нового zip.

Кроме того, ваш новый apk, вероятно, теперь имеет сжатые ресурсы. Я не уверен, как Android справится с этим. В файлах apk, которые генерирует aapt, ресурсы (изображения, xml и т. Д.) не сжимаются, так что они могут быть отображены в память напрямую, без необходимости их извлекать.

Если вы не изменяете ресурсы, лучше всего заменить файл classes.dex в исходном файле apk, а не создавать новый. Если вы также пытаетесь изменить ресурсы, вам следует использовать apktool для извлечения / перепаковки apk.

...