Вы можете использовать pandas.DataFrame.fillna
с опцией method='ffill'
. 'ffill'
означает «прямое заполнение» и будет распространять последнее действительное наблюдение вперед. Альтернативой является 'bfill'
, который работает одинаково, но обратный.
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df = df.fillna(method='ffill')
print(df)
# 0 1 2
#0 1 2 3
#1 4 2 3
#2 4 2 9
Для этого также существует функция прямого синонима, pandas.DataFrame.ffill
, чтобы сделать вещи проще .
Вы сказали, что в первый раз, когда вы установили приложение, он работал нормально.
Единственная разница в шагах, которые вы указали между двумя версиями:
Попробуйте переименовав файл ARDemo1.apk обратно в ARDemo.apk (обязательно создайте резервную копию старой версии) и посмотрите, поможет ли это. Я предполагаю, что он имеет какое-то отношение к имени apk.
Если он все еще не работает, вы можете исключить имя файла apk в качестве источника проблемы и начать расследование 2 ), восстановив свою прежнюю версию и посмотрев, есть ли у вас такая же проблема снова. Если проблема не существует с перестроенной версией вашего старого кода, то вы знаете, что это должно быть что-то делать с вашим кодом.
Надеюсь, что вы попадете куда-нибудь.
Приветствия, Джозеф
Одна из причин может заключаться в том, что ваше имя активности не определено в манифесте
<activity
android:name=""
...>
</activity>
выше, код создавал ту же проблему со мной
У меня была та же проблема, что и файл apk, экспортированный из android Tools > Export
. Я использовал файл apk в папке bin, и он сработал!
P.S. Файл apk в папке bin создается после первого запуска приложения в eclipse.
И чтобы помочь новым читателям, другая причина может быть ошибкой в файле манифеста. Я ошибся android:service
как android.service
и столкнулся с той же ошибкой ...
Другой проблемой, вызывающей эту ошибку, может быть установка APK из ограниченной точки монтирования SD-карты /mnt/media_rw/MicroSD
.
Используйте неограниченную точку монтирования /Removable/MicroSD
.
Для всех, кто имеет эту проблему, единственный раз, когда я получал эту ошибку, была версия API в вашей конфигурации Android Build не соответствует тому, что находится на физическом устройстве.
Зайдите в Eclipse и щелкните правой кнопкой мыши на своем проекте и перейдите к свойствам. Выберите Android - КОТОРОЕ ПРИНИМАЕТ ВАС, ЧТОБЫ ЗАРЕГИСТРИРОВАТЬСЯ. Настройте целевую аудиторию для соответствия устройству и проверьте, устраняет ли это проблему.
Я не повторяю инструкции, которые вводятся здесь для ввода хранилища ключей, пароля и т. д. Попробуйте
Build -> Generate Signed APK -> [Input] --- Next - -> выберите BOTH
blockquote>
- V1 (Jar Signature)
- V2 (Полная подпись APK)
Знаю почему, но, по крайней мере, он работал в моей ситуации.
Установка может дать указанную ошибку, по крайней мере, в следующих случаях:
adb install
вправо?
– abbood
22 February 2014 в 09:52
У меня такая же ошибка (Parse Error, проблема с разбором пакета) при попытке установить пакет .apk из электронной почты. Я смог обойти эту проблему, установив установщик сторонних пакетов ApKatcher:
http://www.addictivetips.com/mobile/install-android-apps-from-gmail/
ApKatcher - не единственное решение. Мой коллега столкнулся с проблемой, установив Astro File Manager.
Вы можете найти оба приложения в Android Marketplace.
Если вы компилируете и экспортируете файл apk в SDK версии 2.1, он не будет работать в любой версии Android ниже вашего экспорта SDK «2.1». Android-совместимое программное обеспечение не совместимо с обратной совместимостью. Например, если вы программируете с помощью андроида NDK (дополнение к пакету андроида SDK), который разрешает разработку в семействе C / C ++, это только совместимо с Android 2.2, Android 2.2 и ниже поддерживает только java-сборки. Поэтому вы повторите ошибку «Ошибка при анализе пакета».
Проверьте, поддерживает ли ваше устройство версию, указанную в minSdkVersion, в AndroidManifest.xml. Если не указать более низкую версию и повторите попытку
Другая возможность заключается в том, что вы сохранили файл apk в папке PRIVATE приложения, а затем попытаетесь установить (путем запуска намерения с вашего кода). в этом случае, когда вы начинаете умываться, вы получаете пакет анализа ошибок. В этом случае возникшая ошибка связана с разрешениями. Дело в том, что сохранение файла в частные папки не является хорошей практикой, однако, если вы действительно этого хотите, вы должны записать файл в MODE_WORL_READABLE при его загрузке. Учтите, что MODE_WORLD_READABLE устарел, и это решение не самое лучшее, так как оно имеет некоторые проблемы с безопасностью. Лучше всего сохранить файл во внешнем хранилище.
У меня была эта проблема, даже когда я указал правильную версию minSDK и targetSDK. Моя проблема заключалась в том, что я использовал "android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
в активности запуска, на устройстве Jellybean. Когда я удалил этот атрибут, он сработал.
Вы также можете проверить журналы на устройстве, чтобы убедиться, что это что-то простое, как проблема с разрешениями. Вы можете проверить журналы с помощью adb
с компьютера хоста / отладки:
adb logcat
Или, если у вас есть доступ к консоли (или при использовании консоли Android-x86, набрав Alt + F1), тогда вы можете проверить журналы с помощью команды logcat
:
logcat
Как уже упоминалось в двух других ответах, при установке с SD-карты могут возникнуть проблемы. В моем случае я распространял свое приложение с помощью вложения электронной почты, и он обычно работал нормально. Просто откройте электронную почту и скачайте приложение (оно, по-видимому, идет на SD-карту), и нажмите на него еще раз, и он будет установлен.
Но потом в один прекрасный день это не сработало, и оказалось, что это потому что у меня был телефон, подключенный к моему компьютеру разработки через USB, и это поместило SD-карту в другом режиме или что-то в этом роде. Таким образом, решение было просто отключить телефон от ПК, а затем отправить электронное письмо еще раз и загрузить приложение снова. Или поместите USB-соединение в режим «только зарядка», чтобы SD-карта не была «подключена» к ПК.
Причина: apk не подписан. После подписания apk проблема будет решена. http://ionicframework.com/docs/guide/publishing.html Пожалуйста, используйте ссылку по инструкциям, чтобы подписать apk.
У меня была пара плохих тегов в файле манифеста.
<meta-data>
</meta-data>
В основном попал, когда я скопировал плохой пример кода meta-data
из файла pdf. Дерьмо.
Я видел только ошибку синтаксического анализа, когда версия для Android на устройстве была ниже версии, в которую было скомпилировано приложение. Например, если приложение скомпилировано для android OS v2.2, и ваше устройство имеет только ОС Android v2.1, вы получите ошибку синтаксического анализа при попытке установить приложение.
Вместо того, чтобы стрелять в темноте, выясните причину этой ошибки, установив ее через adb
:
adb -s emulator-5555 install ~/path-to-your-apk/com.app.apk
Замените emulator-5555
на свое имя устройства. Вы можете получить список, используя:
adb devices
После сбоя, это даст повод. Общие причины и их исправления:
Я столкнулся с тем же сообщением об ошибке «Ошибка анализа: проблема с парсингом пакета» с моими подписанными APK, но я подозреваю, что это может быть вызвано разными причинами.
Чтобы проверить это, я сделал следующее:
Настройка Windows 8.1 Eclipse ADT Build: v22.6.2-1085508
Я создал типичное новое приложение Helloworld, принимающее все значения по умолчанию.
Я побежал приложение на эмуляторе и живое устройство успешно.
Затем я загрузил и установил apk на свое живое устройство и успешно выполнил его.
Он сгенерировал apk в папке bin с размером 782 КБ.
Затем я экспортировал приложение Helloworld в ту же папку bin, подписывая приложение из моего хранилища ключей, которое ранее использовалось для продвижения в Google Play.
Он создал APK размером 385 КБ (заменив оригинальный apk).
Я загрузил apk на свое устройство, и когда я пошел его устанавливать, я получил ошибку «Ошибка анализа: есть проблема синтаксического анализа пакета " (это тот же пакет, который загружен и установлен, когда он выполнен в виде не экспортируемой формы).
Аналогичная проблема, использующая этот «заимствованный» и слегка модифицированный код:
Intent intent = new Intent(Intent.ACTION_VIEW);
File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "myapp.apk");
intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
result = true;
Необходимо изменить создание файла на это (запятая вместо плюса в конструкторе Файла, отсутствует «/» после каталог загрузки):
File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");