Ошибка «Отладочный сертификат истек» в плагинах Eclipse для Android

1899

Я использую плагины Eclipse Android для создания проекта, но я получаю эту ошибку в окне консоли:

[2010-02-03 10:31:14 - androidVNC]Error generating final archive:
Debug certificate expired on 1/30/10 2:35 PM!

Как мне это исправить?

hap497
источник
8
Может кто-нибудь сказать, почему это происходит?
Математика
2
Изменилась ли ваша системная дата, потому что она имеет действительный сертификат на 25 лет (как рекомендуется при подписании заявки). это не событие более 5 лет конкретно
Trikaldarshi
Вам нужно создать новое хранилище ключей
bynu022

Ответы:

2241

Удалите свой сертификат отладки ~/.android/debug.keystoreв Linux и Mac OS X ; каталог похож %USERPROFILE%/.androidна Windows .

Плагин Eclipse должен генерировать новый сертификат при следующей попытке создать пакет отладки. Вам может потребоваться очистить, а затем собрать для создания сертификата.

Кристофер Орр
источник
13
В Windows мне пришлось удалить debug.keystore и внести некоторые изменения, чтобы запустить новую компиляцию. Я создал новый тестовый проект, и был создан новый debug.keystore.
Томас
117
Он также будет сгенерирован для текущего проекта, если вы «очистите» проект (перейдите в Проект -> Очистить ...)
adamnfish
11
Теперь существует проблема отслеживания ошибок, требующая исправления. Пожалуйста, проголосуйте за это. code.google.com/p/android/issues/detail?id=15370
Манфред Мозер,
61
Чистота не решила проблему для меня, мне нужно было вручную запустить rm ~ / .android / debug.keystore.
Джеймс Мур
3
@James Удаление хранилища ключей вручную - первая часть ответа выше. Очистка проекта (или перестройка) - это то, что вам нужно сделать, чтобы создать новое хранилище ключей.
Кристофер Орр
334

После установки Android SDK создает debugсертификат подписи для вас в хранилище ключей с именем debug.keystore. Плагин Eclipse использует этот сертификат для подписи каждой создаваемой сборки приложения.

К сожалению, сертификат отладки действителен только в течение 365 дней. Для создания нового необходимо удалить существующий debug.keystoreфайл. Его расположение зависит от платформы - вы можете найти его в Предпочтения - Android - Сборка - Склад ключей отладки по умолчанию .

Джефф Гилфелт
источник
23
6 апреля 2011 года было принято изменение по умолчанию на 30 лет: review.source.android.com/#change,22128
Джеймс Мур,
Если вы удалите свой debug.keystore, как бы вы обновили свое приложение?
user739375
6
@ user739375, debug.keystore используется только для отладки, отдельный сертификат используется для «производства».
Teo Klestrup Röijezon
@JamesMoore Я действительно удивился тому, сколько лет было сертификату
Trikaldarshi
254

Трудно удалить все ваши файлы .apk разработки, потому что новый сертификат не совпадает, поэтому вы не можете обновить их во всех ваших AVD. Вы также должны получить еще один ключ MAP-API для разработки. Есть другое решение.

Вы можете создать свой собственный сертификат отладки debug.keystoreс любым сроком действия. Сделайте это в .androidпапке под вашим HOMEкаталогом:

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000

keytool.exeможно найти в папке bin JDK (например, C:\Program Files\Java\jdk1.6.0_31\bin\в Windows).

ADT устанавливает имя и фамилию в сертификате как «Отладка Android», организационную единицу - как «Android», а двухбуквенный код страны - как «США». Вы можете оставить значения организации, города и штата как «Неизвестно». В этом примере используется срок действия 14000 дней. Вы можете использовать любое значение, которое вам нравится.

Дэйв Маклин
источник
3
Мне это нравится, потому что он обеспечивает более долгосрочное исправление, пока SDK не предоставит лучший способ справиться с истекающим сертификатом.
Шон Айткен
23
Мне это нравится, потому что мне вообще не нужно использовать Eclipse.
MattK
Я предполагаю, что это должно быть напечатано в командной строке. Если это так, я получаю ошибку «keytool not распознан». Можете ли вы дополнительно объяснить этот метод?
Тед Бетц
1
keytool можно найти в каталоге bin вашего JDK (любая ОС). Я обычно добавляю этот каталог bin в мой PATH, чтобы вышеприведенное работало из любого места. Вы можете найти каталог bin JDK и добавить его в PATH или указать полный путь к keytool в командной строке.
Дэйв Маклин
1
Как отмечали другие комментаторы, Google, похоже, продлил срок действия сертификата отладки по умолчанию, поэтому удаление файла debug.keystore и выполнение clean / build намного проще.
Дэйв Маклин
81

На Vista это сработало:

  1. DOS: del c:\user\dad\.android\debug.keystore

  2. ЗАТМЕНИЕ: В Проекте, Очистить проект. Закрыть Затмение. Снова откройте Eclipse.

  3. ЗАТМЕНИЕ: Запустите эмулятор. Удалить приложение из эмулятора.

Тебе хорошо идти.

Я очень переживал, когда говорю об этой ошибке, но я исправил ее из-за того, что я читал здесь и играл в течение 10 минут.

STH
источник
68
  • WINDOWS

Удалить: debug.keystore находится в C:\Documents and Settings\\[user]\.android, Очистить и построить свой проект.

  • Windows 7 зайдите C:\Users\[username]\.androidи удалите файл debug.keystore.

Очистите и постройте свой проект.

  • MAC

Удалите хранилище ключей, расположенное в ~/.android/debug.keystoreЧистой, и постройте свой проект.

Во всех опциях, если вы не можете получить новый debug.keystore, просто перезапустите eclipse.

Jorgesys
источник
56

В Windows 7 это по пути

C:\Users\[username]\.android
  • перейти на этот путь и удалить debug.keystore
  • очистить и построить свой проект.
AZ_
источник
41

Если срок действия сертификата истекает в процессе отладки проекта, необходимо выполнить удаление вручную :

Пожалуйста, выполните adb uninstall <package_name>в оболочке.

Solata
источник
38

На Mac откройте Терминал (должен открыться каталог текущего пользователя), cd ".android" (здесь есть "ls" для проверки debug.keystore). Наконец, «rm debug.keystore», чтобы удалить файл.

Майкл Бирманн
источник
36

Android SDK генерирует «отладочный» сертификат подписи для вас в хранилище ключей с именем debug.keystore. Плагин Eclipse использует этот сертификат для подписи каждой создаваемой сборки приложения.

К сожалению, сертификат отладки действителен только в течение 365 дней. Чтобы создать новый, вы должны удалить существующий debug.keystoreфайл. Его расположение зависит от платформы - вы можете найти его в « Настройки» -> « Android» -> « Сборка» -> * хранилище ключей отладки по умолчанию.

Если вы используете Windows, выполните следующие действия.

DOS: del c: \ user \ dad.android \ debug.keystore

Затмение: в проекте, очистить проект. Закрыть Затмение. Снова откройте Eclipse.

Затмение: Запустите Эмулятор. Удалить приложение из эмулятора.

Если вы используете Linux или Mac, выполните следующие действия.

Удалите вручную debug.keystoreиз .androidпапки.

Вы можете найти .androidпапку следующим образом:home/username/.android

Примечание: .androidфайл по умолчанию будет скрыт.

Так что нажмите на меню мест. Под выберите домашнюю папку. Под кликом на представлении, под кликом показать скрытые файлы и тогда .androidпапка будет видна.

Удалить debug.keystoreиз .android folder.

Тогда почистите свой проект. Теперь Android сгенерирует новый .android folderфайл.

sravan
источник
34

У меня была эта проблема пару недель назад. Сначала я попробовал устранить неполадки на сайте разработчиков Android, но без удачи. После этого я переустановил Android SDK, что решило мою проблему.

Мауриц Райк
источник
33

Хммм. Интересно, как много людей имели немного другой опыт с этим. Я помню дни, когда это считалось признаком того, что программное обеспечение не было готово к выпуску, и команда фактически исправляла его ДО того, как пользователи начали видеть эти проблемы :(

Мой собственный опыт был немного другим. Я уже пробовал Project> Clean, но все равно получил тот же сбой сборки. Затем я удалил debug.keystore (под .android), как и сказал первый ответ. Все еще есть та же проблема. Потом я снова сделал чистку, и чудо из чудес, это сработало!

Теперь не поймите меня неправильно, я рад, что все получилось благодаря подсказкам в этой теме. Но ясно, что очистка не работает правильно, и как он нашел истекший ключ после того, как я удалил хранилище ключей ??? Очевидно, что-то не так с Eclipse или ADT - не уверен, что именно.

Мэтт Дж.
источник
Eclipse имеет тенденцию кешировать файлы, поэтому иногда требуется очистка / обновление, чтобы сообщить, что файл изменился на диске.
navjotk
33

На Ubuntu это сработало:

Я пошел home/username/.androidи я переименовал keystore.debugв keystoreold.debug. Затем я закрыл Eclipse, запустил Eclipse, и SDK создал новый сертификат keystore.debugв этой папке.

Затем вам нужно удалить / переустановить приложения, которые вы установили с помощью отладки USB или неподписанного APK («unsigned» APK = подписан с помощью сертификата отладки).

FreewheelNat
источник
14

Для Windows XP перейдите C:\Documents and Settings\%userprofile%\.androidи удалите файл debug.keystore , перезапустите eclipse, и теперь ваш проект будет собран без ошибок.

Пример пути:

C:\Documents and Settings\raja.ap\.android\

читать здесь-для-больше .

раджа
источник
13

В Windows debug.keystoreфайл находится в C:\Users\%Username%\.androidпапке. Этот файл создается при установке Android SDK и действует только в течение года. После этого perod вы начнете получать эту ошибку Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Чтобы удалить эту ошибку, просто удалите файл и снова запустите программу. В моем Eclipse я включил, Project->Build Automaticallyчтобы он работал напрямую, но в случае, если вы отключили его, вам нужно будет очистить проект Project->Clean.. выберите ваш проект и нажмите ОК. Тогда вам нужно будет построить его вручную. 3-й щелкни по своему проекту и выбери Build project. (Примечание. Эта опция появится только в том случае, если в меню «Проекты» есть функция «Автоматически строить»).

Аникет Тхакур
источник
13

Сначала закройте затмение, затем

Откройте CMD с помощью Window Key + R или через Run as Admin

Следует за следующим шагом

del "%USERPROFILE%\.android\debug.keystore"
keytool -genkey -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 30000

после этого перезапустите затмение.

user3291565
источник
7

После установки Android SDK in Eclipseон создает сертификат подписи отладки для вас в хранилище ключей с именем debug.keystore . Плагин Eclipse использует этот сертификат для подписи каждой создаваемой сборки приложения.

Теперь проблема с этим отладочным сертификатом состоит в том, что он действителен только в течение года или 365 дней. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app,

Чтобы решить эту проблему, все, что вам нужно сделать, это удалить файл debug.keystore .

  1. Go to Preferences
  2. Android
  3. Build
  4. Default debug keystore

Там вы должны увидеть папку, в которой находится файл. Просто удалите этот файл, и все готово.

Для получения дополнительной информации. Вы можете посетить

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

IntelliJ Amiya
источник
0

Чтобы решить эту проблему, просто удалите файл debug.keystore.

Место хранения по умолчанию для AVD

В ~ / .android / на OS X и Linux.

В C: \ Documents and Settings \ .android \ в Windows XP

В C: \ Users \ .android \ в Windows Vista и Windows 7.

Также смотрите эту ссылку, которая может быть полезна.

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

Гириш Патель
источник