2013-05-19 5 views
3

J'ai un ancien fichier projet et keystore, mais lorsque j'essaye de créer un fichier APK signé, cela donne une erreur de suivi.Erreur lors de la génération de l'apk signé

[2013-05-19 12:36:02 - xxxxxxx] Proguard returned with error code 1. See console 
    [2013-05-19 12:36:02 - xxxxxxx] Unable to access jarfile /Users/muhammadali/Documents/development 
    [2013-05-19 12:36:12 - xxxxxx] Proguard returned with error code 1. See console 
    [2013-05-19 12:36:12 - xxxxxx] Unable to access jarfile /Users/muhammadali/Documents/development 

S'il vous plaît aider pourquoi je ne peux pas générer le fichier APK.

+0

qui vous commande en utilisant pour signer apk –

+0

j'exporte de l'éclipse – Ali

+0

mieux vous créer à nouveau keystore esprit mot de passe et l'exportation apk non signé. Ensuite, utilisez commond pour signé apk –

Répondre

0

Je pense que c'est une bonne pratique si vous l'utilisez avec shell de commande.

Veuillez vous référer au lien ci-dessous qui contient toutes les étapes nécessaires à suivre dans eclipse ou via shell de commande.

http://developer.android.com/tools/publishing/app-signing.html

Vous devez d'abord vous Unsign APK.

Ensuite, créez la clé privée

$ keytool -genkey -v -keystore my-release-key.keystore-alias alias_name -keyalg RSA -keysize 2048 -validity 10000 

signe Ensuite, vous apk non signé avec la clé privée

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-releasekey.keystore my_application.apk alias_name 

Enfin en utilisant align zip, alignez vous APK

$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk 

Ces étapes sont bien expliquées dans la documentation ci-dessus.

1

Bon, quelques petites choses:

  1. Assurez-vous que votre Proguard est la version 4.8 et plus. Il y a un bug connu qui a fait que dans 4.7.

  2. En supposant que vous utilisez la dernière version de Proguard et il est encore INTERVENUES, allez à [android-sdk-folder]/sdk/tools/proguard/bin/proguard.sh et apporter les modifications suivantes:

    Change:

    java -jar $PROGUARD_HOME/lib/proguard.jar "[email protected]" 
    

    pour:

    java -jar "$PROGUARD_HOME/lib/proguard.jar" "[email protected]" 
    
  3. Ajouter cette ligne à votre fichier project.properties i n votre dossier d'application.

    proguard.config=proguard.cfg 
    
  4. Créer un fichier proguard.cfg dans votre dossier de candidature.

  5. Remplissez votre fichier proguard.cfg avec quelque chose comme ci-dessous (modifier au besoin).

    -optimizationpasses 5 
    -dontusemixedcaseclassnames 
    -dontskipnonpubliclibraryclasses 
    -dontpreverify 
    -verbose 
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 
    
    -keep public class * extends android.app.Activity 
    -keep public class * extends android.app.Application 
    -keep public class * extends android.app.Service 
    -keep public class * extends android.content.BroadcastReceiver 
    -keep public class * extends android.content.ContentProvider 
    -keep public class * extends android.app.backup.BackupAgentHelper 
    -keep public class * extends android.preference.Preference 
    -keep public class com.android.vending.licensing.ILicensingService 
    
    -keepclasseswithmembernames class * { 
        native <methods>; 
    } 
    
    -keepclasseswithmembers class * { 
        public <init>(android.content.Context, android.util.AttributeSet); 
    } 
    
    -keepclasseswithmembers class * { 
        public <init>(android.content.Context, android.util.AttributeSet, int); 
    } 
    
    -keepclassmembers class * extends android.app.Activity { 
        public void *(android.view.View); 
        public void onSearchButtonClicked(java.lang.String); 
    } 
    
    -keepclassmembers enum * { 
        public static **[] values(); 
        public static ** valueOf(java.lang.String); 
    } 
    
    -keep class * implements android.os.Parcelable { 
        public static final android.os.Parcelable$Creator *; 
    } 
    
  6. Turn Project -> Build Automatically Aller au menu Project -> Clean... et nettoyer votre premier projet.

Bonne chance! Je serai heureux de vous aider en essayant toutes les étapes ci-dessus et de passer par là.

Questions connexes