Intereting Posts
Android Phonegap приложение – перенос активности на передний план Eclipse дает «Ошибка преобразования в формат Dalvik», а ant works Пользовательский вид Android ActionBar не заполняет родительский Android Fragment объявлен в макете, как установить аргументы? Не найдено подходящего метода requestLocationUpdates Андроид: экспортированы не-манифестные широковещательные приемники? Приложение для генератора траекторий для Android Попытка заставить Android LinearLayout растягиваться горизонтально и вертикально Можно ли программно создавать образ на Java, Android? Android – WallpaperService, почему мой движок должен быть внутренним классом? Можно ли использовать распознавание речи Android, не показывая диалог? Android: screenOrientation = "портрет" игнорируется в Jellybean ListView не расширяется внутри NestedScrollView Как отлаживать, какие тревоги AlarmManager запускаются из вашего приложения? Загрузка изображения с Android (с Android Asynchronous Http Client) на сервер rails (с помощью paperclip)

Не удалось подписать релиз APK -: app: shrinkReleaseMultiDexComponents FAILED

Я пытаюсь создать подписанный apk, и журнал продолжает показывать мне следующую ошибку:

:app:compileReleaseJavaWithJavac Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. :app:compileReleaseNdk UP-TO-DATE :app:compileReleaseSources :app:collectReleaseMultiDexComponents :app:proguardRelease Warning:com.google.android.gms.internal.zzac: can't find referenced class android.net.http.AndroidHttpClient Warning:com.google.android.gms.internal.zzw: can't find referenced method 'void addHeader(java.lang.String,java.lang.String)' in program class com.google.android.gms.internal.zzw$zza Warning:com.google.android.gms.internal.zzw$zza: can't find referenced method 'void setURI(java.net.URI)' in program class com.google.android.gms.internal.zzw$zza Warning:com.ironsource.mobilcore.j: can't find referenced method 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' in library class android.app.Notification Warning:com.mopub.volley.toolbox.HttpClientStack: can't find referenced method 'void addHeader(java.lang.String,java.lang.String)' in program class com.mopub.volley.toolbox.HttpClientStack$HttpPatch Warning:com.mopub.volley.toolbox.HttpClientStack$HttpPatch: can't find referenced method 'void setURI(java.net.URI)' in program class com.mopub.volley.toolbox.HttpClientStack$HttpPatch Warning:com.mopub.volley.toolbox.Volley: can't find referenced class android.net.http.AndroidHttpClient Warning:there were 4 unresolved references to classes or interfaces. You may need to add missing library jars or update their versions. If your code works fine without the missing classes, you can suppress the warnings with '-dontwarn' options. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) Warning:there were 4 unresolved references to program class members. Your input classes appear to be inconsistent. You may need to recompile the code. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember) Warning:there were 1 unresolved references to library class members. You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember) Exception while processing task java.io.IOException: Please correct the above warnings first. at proguard.Initializer.execute(Initializer.java:473) at proguard.ProGuard.initialize(ProGuard.java:233) at proguard.ProGuard.execute(ProGuard.java:98) at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074) at com.android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.java:139) at com.android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.java:115) at com.android.builder.tasks.Job.runTask(Job.java:48) at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41) at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:227) at java.lang.Thread.run(Thread.java:745) :app:shrinkReleaseMultiDexComponents FAILED Error:Execution failed for task ':app:shrinkReleaseMultiDexComponents'. > java.io.IOException: The output jar [<project_path>\app\build\intermediates\multi-dex\release\componentClasses.jar] must be specified after an input jar, or it will be empty. 

Ниже приведен пример build.gradle на уровне приложения :

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.my.app" minSdkVersion 14 targetSdkVersion 23 versionCode 25 versionName "2.5" // Enabling multidex support. multiDexEnabled true } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } dexOptions { incremental true javaMaxHeapSize "2048M" } } repositories { mavenCentral() maven { url "https://jitpack.io" } } dependencies { compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:design:23.0.1' compile 'com.android.support:recyclerview-v7:23.0.1' compile 'com.google.android.gms:play-services:8.1.0' compile 'com.google.code.gson:gson:2.3.1' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.facebook.android:facebook-android-sdk:4.2.0' compile 'me.dm7.barcodescanner:zxing:1.7.2' compile 'de.hdodenhof:circleimageview:1.3.0' compile 'com.scottyab:secure-preferences-lib:0.1.3' compile 'com.soundcloud.android:android-crop:1.0.0@aar' compile('com.afollestad.material-dialogs:core:0.8.1.0@aar') { transitive = true } compile('com.mopub:mopub-sdk:3.13.0@aar') { transitive = true } compile project(':android-support-v4-preferencefragment') compile project(':circular_progress_bar') compile files('libs/mobilecore_V1.1.jar') compile files('libs/libAdapterSDKMoPub.jar') compile files('libs/adcolony.jar') } 

И мой build-уровень верхнего уровня :

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } 

Я пробовал с другой версией градиента, например 1.4.0-beta1', 1.4.0-beta2 и 1.3.1 все равно не повезло.

В вашем следе есть некоторая информация –

Предупреждение: было 4 нерешенных ссылки на классы или интерфейсы. Возможно, вам придется добавить отсутствующие библиотеки или обновить их версии. Если ваш код работает нормально без отсутствующих классов, вы можете запретить предупреждения с параметрами «-dontwarn». ( http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass )

По крайней мере, часть вашей проблемы заключается в том, что AndroidHttpClient был удален в API 23, и по крайней мере одна из ваших библиотек зависит от него. У вас есть три варианта.

1) Вы можете включить следующее в файл build.gradle . Что включает в себя устаревшую библиотеку в вашем apk. См. Удаление клиента HTTP Apache .

 android { useLibrary 'org.apache.http.legacy' } 

2) Вы можете опустить цель и скомпилировать sdk в 22 вместо 23. Это должно позволить вам скомпилировать или, по крайней мере, разрешить проблему AndroidHttpClient пока библиотеки не будут обновлены, чтобы не требовать этого.

3) Вы можете добавить -dontwarn команды в свой файл proguard, чтобы подавить предупреждения, чтобы получить сборку. Как отмечено в документации, это может быть опасно, если вы не уверены, что предупреждения могут быть безопасно проигнорированы. Я не уверен, что игнорирование предупреждений, связанных с удалением HttpClient и связанных классов, безопасно или нет. Это может привести к нестабильной сборке при работе на M, но должно быть безопасным для L и ниже, потому что эти классы существуют на устройствах на этом уровне API.

ДОБАВЛЕНО: для тех, кто борется с тем же, имейте в виду, что вам придется снизить уровень builToolsVersion и com.android.support в зависимости от 22.0.1 .

Это очень простая проблема для решения. Проблема возникает, когда вы разрабатываете приложение, а где-то посередине вы обновляете свой SDK. Это прекрасно, но вы, что вы не знаете, конфигурация градиента для вашего проекта должна быть актуальной. Поэтому просто создайте новый проект и посмотрите на свой путь к classpath который для моего был com.android.tools.build:gradle:1.3.1 в проекте, но теперь новый путь к classpath 'com.android.tools.build:gradle:1.5.0' проектов – classpath 'com.android.tools.build:gradle:1.5.0' . Другое, что нужно рассмотреть, это compileSdkVersion , buildToolsVersion , targetSdkVersion . Вы также должны проверить, обновлена ​​ли версия вашей библиотеки. Вы можете найти их версии, просто открыв вам SDK-менеджер. Поэтому, чтобы обернуть это: это то, что должен быть обновлен ваш градиент проекта:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' //update this section to the lates gradle core available } } 

И это разделы в файле уровня градильного модуля, которые необходимо обновить:

 android { compileSdkVersion 23 // update this one buildToolsVersion "23.0.2" // update this one defaultConfig { applicationId "ranjbar.hadi.something" minSdkVersion 14 targetSdkVersion 23 // update this one versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } 

надеюсь это поможет