Вы можете клонировать массив с помощью Array#slice
:
console.log(s); // ["bye"], i.e. incorrect
console.log(s.slice()); // ["hi"], i.e. correct
Функция, которую вы можете использовать вместо console.log
, которая не имеет этой проблемы, выглядит следующим образом:
console.logShallowCopy = function () {
function slicedIfArray(arg) {
return Array.isArray(arg) ? arg.slice() : arg;
}
var argsSnapshot = Array.prototype.map.call(arguments, slicedIfArray);
return console.log.apply(console, argsSnapshot);
};
В случае объектов, к сожалению, лучшим методом является отладка сначала с помощью браузера, отличного от WebKit, или для записи сложной функции для клонирования. Если вы работаете только с простыми объектами, где порядок ключей не имеет значения, а функций нет, вы всегда можете:
console.logSanitizedCopy = function () {
var args = Array.prototype.slice.call(arguments);
var sanitizedArgs = JSON.parse(JSON.stringify(args));
return console.log.apply(console, sanitizedArgs);
};
Все эти методы, очевидно, очень медленные, поэтому еще больше так как с нормальным console.log
s, вы должны отключить их после завершения отладки.
для меня причина в том, что у меня было несколько сборок с использованием разных вариантов сборки на одном телефоне:
произошло то, что некоторые из этих сборников были построены me , другая была отправлена мне другим разработчиком .. пытается установить разработчиков, в то время как у меня были другие сборки (построенные мной), вызванные этой ошибкой.
поэтому исправление было простым: удалить все сборки на моем телефоне (независимо от варианта сборки) .. затем установить apk, отправленный моим сверстником .. и он работал как шарм
Для тех, кто пользуется Android Studio 3.
Ответ Suryanarayana Reddy's правильный, он считает, что он не определяет шаги для его решения, следовательно.
в вашем AndroidManifest.xml под тег приложения добавляет testOnly="false"
и android:debuggable="true"
так:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:testOnly="false"
android:debuggable="true"
>
Редактировать в меню AndroidStudio Build> Build APK (s)
Ясно, что есть много причин этой проблемы. Для меня это было так: я развернулся к своей nexus 7 (фактическому устройству) из Android Studio (v1.3.2). Все работало нормально. Затем я создал подписанный apk и загрузился на свой Google Диск. После отключения моей связи от USB я пошел в настройки / приложения и удалил свое приложение (App1). Затем я открыл Google Drive и нажал на свой App1.apk и решил установить его (необходимо убедиться, что вы разрешили установку apks в настройках). Затем я получил страшное сообщение «App not Installed»
Решение для меня: вернитесь в настройки / приложения и прокрутите, хотя все приложения и внизу были бледной версией моего App1 (обратите внимание, что оригинальный App1 был вверху в алфавитном порядке, который был удален, как указано выше). При нажатии на бледную версию он сказал «Не установлен для этого пользователя». (Я установил свою связь, чтобы иметь более одного пользователя). Но в верхнем правом углу есть кнопка с тремя точками. Я нажал на это, и он сказал «Uninstall для всех пользователей». Что я сделал, и это устранило проблему. Теперь я смог щелкнуть App1.apk и установить его без ошибок.
Я также решил эту проблему,
Проблема заключалась в том, что я дважды объявил о своем основном действии, в качестве первого действия для загрузки, и я указал также фильтр намерения для него. И еще раз под ним Я объявил это снова.
Просто убедитесь, что вы не объявляете свои действия дважды.
создать файл хранилища ключей через командную строку
keytool -genkey -alias key_file_name.keystore -keyalg RSA -validity 1000000000000000 -keystore key_file_name.keystore
экспортировать apk через Eclipse, щелкните правой кнопкой мыши Android-проект Android Tools> Экспорт подписанного пакета приложений, затем укажите местоположение хранилища & amp; password.
это приведет к сбою подписанного apk, в то же время apk будет zipaligned. И устанавливаем.
Если вы переходите через командную строку для всех, несколько раз вы можете столкнуться с ошибкой «Приложение не установлено». (Ошибка при установке приложения не может произойти не только при использовании командной строки. Это могут быть и другие причины)
Я столкнулся с ошибкой App not installed
при попытке установить apk на моем телефоне, который работает на 4.4.2 aka KitKat, но мой друг не столкнулся с этой ошибкой на его телефон, который работает на 6+. Я пробовал другие решения, такие как удаление старой / отладочной версии приложения, поскольку apk была версией выпуска, очищала данные отладочного приложения и даже очищала все мои кэшированные данные. Затем, наконец, я понял, что все, что мне нужно было сделать, это выбрать обе версии подписи при создании моего подписанного apk.
Прежде чем я выбрал только V2 (Full APK Signature)
, но после выбора V1 Jar Signature
я смог успешно установить мой подписанный APK на моем устройстве 4.4.2. Надеюсь, это поможет другим!
У меня была та же проблема. Я не понимал, что приложение должно быть подписано даже для тестирования.
После самоподписывания он установил штраф.
Вы также можете столкнуться с этой проблемой, потому что производитель вашего устройства не лицензировал коммерческие приложения Google, такие как Play Store, YouTube, Карты Google и т. д. Для решения проблемы воспользуйтесь этим ответом .
В конце концов я узнал, что приложения не были успешно установлены, а не только мои. Я установил значение «Установить приложение» с SD-карты на «Автоматически». Это исправило это.
В моем случае это потому, что Android Studio 3.0 устанавливает android:testOnly="true"
в APK, которые строятся из release
Build Variant.
https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
blockquote>Итак, запустите
./gradlew assembleRelease
, решите мою проблему
Когда эта проблема со мной произошла, я исправил ее, удалив некоторые несущественные файлы, которые у меня были в папке проекта, например, хранилище ключей.
Оглядываясь назад, было бы неплохо дать люди - ключи к вашей игре.
Я также столкнулся с этой проблемой. Пожалуйста, попробуйте это решение. Убедитесь, что имя пакета вашего проекта отличается от предыдущего проекта, который уже был установлен на вашем мобильном телефоне. Я думаю, что они конфликтуют в своих именах. Он работает во мне.
Если у вас есть предыдущая версия для этого приложения, попробуйте сначала удалить его, теперь моя проблема была решена этим методом.
Я столкнулся с той же проблемой. Проблема заключалась в том, что основная работа в моем файле AndroidManifest.xml была написана дважды. Я удалил дубликат.
У меня был такой же тип ошибок, что и в этой строке в моем XML-файле манифеста Android.
android:permission="android.permission.INSTALL_LOCATION_PROVIDER"
Я удалил строку и решил мою проблему. Надеюсь, это поможет
У меня была та же проблема, то есть приложение появилось как установлено, но не было запущено при нажатии на значок. После некоторого удара головой я обнаружил, что я глупо поместил «android: exported =« false »для моей основной активности запуска в файле AndroidManifest ... После того, как я удалил его, приложение запустилось отлично ..
По-видимому, это также может быть вызвано переименованием APK до его установки. Я хотел уменьшить количество пользователей, которых нужно было сделать, чтобы получить приложение с нашего веб-сайта, сократив имя файла. После этого они не смогли установить его.
Как только я вернусь к исходному имени файла, используемому при создании и подписании пакета, я смог обновить установленное приложение.
Используя Android Studio, я ранее установил неподписанную отладочную версию APK ( Build> Build APK ) и должен был удалить ее перед установкой подписанной версии выпуска ( Build Variants> Build Вариант: release , Сборка> Сгенерировать подписанный APK ).
Проверьте версию Android.
Если вы устанавливаете нерыночные приложения и несовместимую версию, вы получите эту ошибку.
Пример: приложение, нацеленное на 2.3.4. устройство равно 2.2. Тогда вы получите эту ошибку.
Моя проблема заключалась в том, что у меня есть несколько учетных записей пользователей на устройстве. Я удалил приложение в 1 учетной записи, но он все еще был установлен на другой учетной записи. Таким образом, пространство имен столкнулось и не было установлено. Удаление приложения со всех пользователей исправлено для меня.
Я знаю, что это старый пост, но для новых пользователей может быть полезно. У меня была та же проблема: мое приложение отлично работало при дебюгерации. Когда я подписал APK, я получил одно и то же сообщение: «Приложение не установлено».
Я исправил, что удалил мой JDK (я использовал jdk-6u14-windows-x64) и установил новый (jdk- 6u29-окна-x64). После экспорта и подписи APK снова все было в порядке!
Возобновление, моя проблема была в версии JAVA. Спасибо Oracle!
Откройте приложение logCat при попытке установить приложение. Установите значение «Нет фильтров». Ищите идентификатор пакета InstallAppProgress. Если сбой установки, вы должны увидеть «Код ошибки установки». В моем случае это было
D/InstallAppProgress: Installation error code: -7
. Здесь вы можете использовать эту ссылку , чтобы найти информацию о вашем конкретном коде ошибки.
Моя проблема была похожа на проблему @Lunatikzx. Из-за неправильного тега разрешения, который был написан как атрибут для приложения:
<application
android:permission="android.permission.WRITE_EXTERNAL_STORAGE"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:testOnly="false"
android:debuggable="true">
Что исправлено для меня, это изменение тега разрешения для разделения тега следующим образом:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Я столкнулся с проблемой, когда обновляю свой Android от 2.3.2 до 3.0.1. Если это так, IDE автоматически рассмотрит следующие моменты.
1. Вы не можете установить приложение с android: testOnly = "true" обычными способами, например, из файлового менеджера Android или из загрузить веб-сайт
2.Android Studio устанавливает android: testOnly = «true» на APK, которые запускаются из
, если вы запустите приложение, напрямую подключив устройство к вашей системе , apk будет устанавливать и запускать без проблем.
, если вы отправили этот apk с помощью копии из установочной папки put и debug, которая никогда не будет установлена на устройстве.
Решение: go Build ---> Build APK (s) ---> скопировать общий доступ к файлу apk в вашу команду
, тогда ваша проблема будет решена.
Это также может происходить при создании виджета на главном экране, а ваш XML-файл виджета имеет неправильную активность, указанную в свойстве android:configure
.
У меня была аналогичная проблема, и это было потому, что я пытался установить apk на телефоне с предыдущей версией того же apk, и оба apks не были подписаны с тем же сертификатом. Я имею в виду, что когда я использовал тот же сертификат, мне удалось перезаписать предыдущую установку, но когда я изменил сертификат между версиями, установка была невозможна. Вы используете один и тот же сертификат?
У меня была такая же проблема, и вот как это удалось: перейдите в файл манифеста и убедитесь, что атрибуты «Отладка» и «Только тест» установлены в значение «false». Это сработало для меня:)
Ошибка «Приложение не установлена» также может произойти, если приложение установлено или перемещено на SD-карту, а затем подключен USB-кабель, в результате чего SD-карта отключится.
В этом случае проблема с отключением USB-накопителя или перемещением приложения во внутреннее хранилище.
Если приложение не установлено, удалите файл .android_secure/smdl2tmpl.asec
с SD-карты.
Если папка .android_secure
пуста в диспетчере файлов, удалите ее с ПК.
Это может произойти, если в вашем AndroidManifest.xml дважды объявлена ваша MainActivity.
Еще одна возможная причина: вы изменили активность запуска. Подсказка: никогда не делайте этого с уже опубликованными приложениями! Причины, обсуждаемые в блоге разработчиков Android .