Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:
Предположим, что у вас есть класс с именем Student.
public class Student
{
private string FirstName;
private string LastName;
public string GetFullName()
{
return FirstName + LastName;
}
}
Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.
public class StudentInfo
{
public string GetStudentName()
{
Student s;
string fullname = s.GetFullName();
return fullname;
}
}
Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.
Решение для Mac
Эта ошибка в основном означает, что терминал не смог найти zipalign-файл. Таким образом, вы можете либо ввести полный путь для вашего zipalign файла с помощью команды (расположенной в папке с вашими инструментами Android)
/Users/username/Library/Android/sdk/build-tools/26.0.1/zipalign -v 4 android-armv7-release-unsigned.apk helloWorld.apk;
Если вы не знаете местоположение zipalign-файла, тогда просто используйте эту команду
find ~/Library/Android/sdk/build-tools -name "zipalign"
Найти его и ссылаться на него ... У меня есть он здесь и ссылаюсь на него следующим образом:
/ Пользователи / lioncio / Desktop / adt-bundle-mac-x86_64-20140702 / sdk / build-tools /android.4.4W/zipalign bla bla bla (все опции команды!) [/ g1]
И работал
Перейдите к пути выравнивания по zip и включите это с помощью команды
/Users/ignatiusandrew/Library/Android/sdk/build-tools/25.0.2/zipalign 4 android-release-unsigned.apk igi.apk
Простой однострочный:
echo "export PATH=\$PATH:~/Library/Android/sdk/build-tools/23.0.1/" >> ~/.bash_profile && . ~/.bash_profile
Обязательно замените 23.0.1 вашей установленной версией
$ ls -l ~/Library/Android/sdk/build-tools/
total 0
drwxr-xr-x 23.0.1 <---
Теперь вы сможете использовать zipalign независимо от текущей рабочей директории
$ zipalign
добавить его к пути
на терминале
найти путь для zip align
find ~/Library/Android/sdk/build-tools -name "zipalign"
путь: / Пользователи / имя пользователя / Библиотека / Android / sdk / build-tools / 26.0.1 / zipalign
введите найденный там путь
sudo nano /etc/paths
Теперь на новом терминале вы можете увидеть zipalign reco
BLOCKQUOTE>
Вы можете найти правильный путь с помощью этой команды:
find ~/Library/Android/sdk/build-tools -name "zipalign"
Zipalign - это команда, расположенная в $ANDROID_HOME/build-tools/{android-version}/
.
Надеюсь, что это помогло.
Во-первых, если ваш дом Android настроен, вы можете просто cd $ANDROID_HOME
и open .
(это должно быть - / Users / username / Library / Android /, вы можете просто cd к этому пути)
Затем перейдите к «sdk / build-tools / 25.0.3 /» (версия 25.0.3 в этом случае ваша может быть другой версией).
На вашем терминале (apk prompt), перетащите zipalign на терминал и ...../zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
. Должен работать нормально.
Надеюсь, что это поможет.
Возможно, текущий каталог не находится на вашем пути?
Попробуйте добавить «./» перед вашей командой, чтобы
./zipalign -v 4 Project1.apk Project1-aligned.apk
для меня это сработало отлично, я скопировал zipalign файл с пути android в папку, где я хотел запустить команду, а затем набрал ./zipalign -v 4 android-release-unsigned.sdk nameofapp.apk
Примечание: на Mac
cd android-sdk/build-tools/22.0.0/
- смените каталог на папку android sdk, создайте инструменты и выберите версию (я использовал 22.0.0).
Затем в приглашении введите:
./zipalign -v 4 /MyApp/android-x86-release-signed.apk ~/MyApp/android-x86-release-signedandzipped.apk
Это сработало для меня. Я пробовал другие решения выше, не добившись успеха. Мне просто нужно было запустить команду с правильной папкой, но это не было ясно объяснено в других ресурсах, которые я проверил.
Я использую Windows с git bash / command promt
. zipalign.exe необходимо настроить в переменных среды.
поэтому включить sdk folder 'build-tool' с версией для Android которую вы используете для сборки.
e.g. E:\android-sdk\build-tools\22.0.1
он должен содержать «zipalign.exe». теперь вы можете использовать
zipalign -v 4 Project1.apk Project1-aligned.apk
из любого места с помощью инструментов командной строки.
thumb для меня, поэтому я могу помочь другим разработчикам.
Если вы работаете в Windows, измените командную строку, чтобы указать на папку, содержащую zipalign.exe, а затем запустите команду. Кроме того, я обнаружил, что вы не используете полную команду:
zipalign [-f] [-v] 4 Input.apk Output.apk
~/Library/Android/sdk/build-tools/xxxx/zipalign
Перетащите его на терминал или сохраните на своем пути. xxxx -> Версия
Вы найдете инструмент zipalign в /path/to/sdk/build-tools/zipalign
NOT в папке с инструментами больше.
Relax! , Just Use Locate
Команда в терминале WHEREVER, она выйдет
tom-MacBook-Air:kavform_app tom$ locate zipalign
/Users/tom/Software/android-sdk-macosx/build-tools/24.0.1/zipalign
/Users/tom/Software/android-sdk-macosx/docs/tools/help/zipalign.html
. В моем случае это было зажато здесь
/Users/tom/Software/android-sdk-macosx/build-tools/24.0.1/zipalign -v 4 /Users/tom/kavwork/kavform/kavform_app/platforms/android/build/outputs/apk/android-release-unsigned.apk BrideToBe.apk
%ANDROID_HOME%\\build-tools\\25.0.2\\zipalign -v 4 .\\platforms\\android\\build\\outputs\\apk\\input.apk .\\path\\ output.apk