Помилка "Сертифікат налагодження минув" у плагінах Eclipse Android


1898

Я використовую плагіни Eclipse Android для створення проекту, але я отримую цю помилку у вікні консолі:

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

Як це виправити?


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/isissue/detail?id=15370
Манфред Мозер

61
Clean не вирішив проблему для мене, мені потрібно було вручну ~ / .android / debug.keystore.
Джеймс Мур

3
@James Видалення магазину брелоків вручну - це перша частина відповіді вище. Очищення проекту (або відновлення) - це те, що потрібно зробити, щоб створити нову сховище ключів.
Крістофер Орр

334

Після встановлення Android SDK генерує debugдля вас сертифікат підпису в магазині ключів, який називається debug.keystore. Плагін Eclipse використовує цей сертифікат для підписання кожної створеної програми.

На жаль, сертифікат налагодження дійсний лише 365 днів. Щоб створити новий, потрібно видалити наявний debug.keystoreфайл. Його місце розташування залежить від платформи - ви можете знайти його в налаштуваннях - Android - Build - Закладка налагодження за замовчуванням .


23
6 квітня 2011 року було прийнято зміну на 30 років за замовчуванням: review.source.android.com/#change,22128
Джеймс Мур

Якщо ви видалите свою debug.keystore, як би оновити свою програму?
user739375

6
@ user739375, debug.keystore використовується лише для налагодження, окремий сертифікат використовується для "виробництва".
Тео Клеструп Рейезон

@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можна знайти в папці для сміття JDK (наприклад, C:\Program Files\Java\jdk1.6.0_31\bin\в Windows).

ADT встановлює ім'я та прізвище на сертифікаті як "Android Debug", організаційний підрозділ як "Android", а двобуквенний код країни як "US". Цінність організації, міста та штату ви можете залишити як "Невідомо". Цей приклад використовує термін дії 14000 днів. Ви можете використовувати будь-яке значення, яке вам подобається.


3
Мені це подобається, тому що він забезпечує більш довгострокову корекцію, поки SDK не надасть кращий спосіб поводження з терміном, що закінчується.
Шон Ейткен

23
Мені це подобається, тому що мені зовсім не потрібно використовувати затемнення.
MattK

Я припускаю, що це потрібно ввести в командному рядку. Якщо це так, я отримую помилку "keytool не розпізнається". Чи можете ви далі пояснити цей метод?
Тед Бетц

1
keytool можна знайти у каталозі бін вашого JDK (будь-якій ОС). Зазвичай я додаю цей каталог бін у свій PATH, щоб вищезазначене працювало з будь-якого місця. Ви можете або знайти свій каталог бін JDK і додати його у свій PATH, або ви можете ввести повне ім'я шляху до keytool у командному рядку.
Дейв Маклін

1
Як зазначають інші коментатори, Google, схоже, продовжив тривалість сертифіката налагодження за замовчуванням, тому видалення файлу debug.keystore та очищення / складання набагато простіше.
Дейв Маклін

81

У Vista це спрацювало:

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

  2. ECLIPSE: У проекті Очистіть проект. Закрити затемнення. Повторно відкрийте затемнення.

  3. ECLIPSE: Запустіть емулятор. Видаліть програму з емулятора.

Вам добре піти.

Я дуже хвилювався, коли кажу про цю помилку, але я її виправив, не читаючи тут, і розігруючись протягом 10 хвилин.


68
  • ВІКНИ

Видалити: debug.keystore розташований у C:\Documents and Settings\\[user]\.android, Очистіть та складіть свій проект.

  • У Windows 7 перейдіть C:\Users\[username]\.androidі видаліть файл debug.keystore.

Очистіть і складіть свій проект.

  • МАК

Видаліть сховище ключів, розташоване в ~/.android/debug.keystoreОчистити, та створіть свій проект.

У всіх варіантах, якщо ви не можете отримати новий debug.keystore, просто перезапустіть затемнення.


56

У Windows 7 він на шляху

C:\Users\[username]\.android
  • перейдіть по цьому шляху і видаліть debug.keystore
  • очистити та створити свій проект.

41

Якщо термін дії сертифікату закінчується в середині налагодження проекту, потрібно видалити вручну :

Будь ласка, виконайте adb uninstall <package_name>в оболонці.


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

Затемнення: У проекті Очистіть проект. Закрити затемнення. Повторно відкрийте затемнення.

Затемнення: Запустіть емулятор. Видаліть програму з емулятора.

Якщо ви використовуєте Linux або Mac, виконайте наведені нижче дії.

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

Ви можете знайти цю .androidпапку:home/username/.android

Примітка: .androidфайл за замовчуванням буде приховано.

Тому натисніть на меню місць. У розділі Виберіть домашню папку. Під натисканням кнопки перегляду, під натисканням показу прихованих файлів, і тоді .androidпапка буде видно.

Видалити debug.keystoreз .android folder.

Потім очистіть свій проект. Тепер Android генерує новий .android folderфайл.


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 ("без підпису" APK = підписано сертифікатом налагодження).


14

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

Приклад шляху:

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

читати тут-для-більше .


13

У debug.keystoreфайлі Windows розміщено C:\Users\%Username%\.androidпапку. Цей файл створюється при встановленні SDK для android і дійсний лише рік. Після цього perod ви почнете отримувати цю помилку Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Щоб усунути цю помилку, просто видаліть файл та запустіть програму ще раз. У моєму Eclipse я ввімкнув Project->Build Automaticallyтак, що він працював безпосередньо, але якщо ви його відключили, вам потрібно буде почистити проект Project->Clean.. виберіть проект і натисніть кнопку ok. Тоді вам потрібно буде побудувати його вручну. 3-й клацніть на вашому проекті та виберіть Build project. (Примітка. Цей параметр ви побачите лише у тому випадку, якщо ви включили функцію Build Automatically в меню проектів)


13

Спочатку закрийте затемнення потім

Відкрийте CMD за допомогою віконного ключа + R або запустити як адміністратор

Виконує наступний крок

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

після цього перезапуску затемнення.


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


0

Щоб виправити цю проблему, просто видаліть файл debug.keystore.

Місце для зберігання даних AVD за замовчуванням -

У ~ / .android / на OS X та Linux.

В C: \ Документи та налаштування \ .android \ у Windows XP

В C: \ Користувачі \ .android \ у Windows Vista та Windows 7.

Також дивіться це посилання, яке може бути корисним.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.