Невозможно заархивировать проект, потому что: у проекта нет имени пакета (но оно есть!) - PullRequest
0 голосов
/ 20 июня 2020

В течение 2-3 часов мой проект больше не позволяет мне экспортировать подписанный APK из-за этой ошибки.

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

Если я запускаю приложение в режиме отладки, он работает должным образом

[РЕДАКТИРОВАТЬ]
Я обнаружил проблему, похоже, проблема связана с слишком длинным именем пути к проекту, серьезно?!
Я не хочу менять папку по умолчанию, в которой я сохраняю все свои проекты в зависимости от того, какой тип инструмента я

В любом случае, я протестировал это, я создал новое решение в папке root моего раздела D: и вставил все файлы из моего исходного решения, попытался используйте «Архивировать все» и сработало.
Эта ошибка помогла мне понять проблему:

Failed to generate Java type for class: Google.Android.Material.BottomNavigation.BottomNavigationView/IOnNavigationItemReselectedListenerImplementor due to System.IO.PathTooLongException

Теперь вопрос: как я могу сохранить свою исходную папку?


[ОРИГИНАЛ]
Я также создал новый проект, но проблема не устранена ... Я не знаю, что может быть


Это журнал, созданный при использовании MSBuild вручную

_ResolveAndroidSigningKey:
  Creating "obj\Release\100\android_debug_keystore.flag" because "AlwaysCreate" was specified.
_Sign:
  D:\Android\android-sdk\build-tools\29.0.2\zipalign.exe -p 4 "D:\Software Development\Visual Studio\C#\Mobile\Android\
  CGSJDSportsNotification\CGSJDSportsNotification.Android\obj\Release\100\android\bin\com.mutu_adi_marian.cgs_jdsportsn
  otification.apk" "bin\Release\\com.mutu_adi_marian.cgs_jdsportsnotification-Signed.apk"
  C:\Program Files\Android\Jdk\microsoft_dist_openjdk_1.8.0.25\bin\java.exe -jar D:\Android\android-sdk\build-tools\29.
  0.2\lib\apksigner.jar sign --ks "C:\Users\mutua\AppData\Local\Xamarin\Mono for Android\debug.keystore" --ks-pass pass
  :android --ks-key-alias androiddebugkey --key-pass pass:android --min-sdk-version 25 --max-sdk-version 29  "D:\Softwa
  re Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotification.Android\bin\Release\co
  m.mutu_adi_marian.cgs_jdsportsnotification-Signed.apk"
  Signed android package 'bin\Release\com.mutu_adi_marian.cgs_jdsportsnotification-Signed.apk'
Done Building Project "D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotif
ication.Android\CGSJDSportsNotification.Android.csproj" (SignAndroidPackage target(s)).

Project "D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotification.sln" (
1:2) is building "D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotificati
on\CGSJDSportsNotification.csproj" (3:11) on node 1 (SignAndroidPackage target(s)).
D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotification\CGSJDSportsNoti
fication.csproj : error MSB4057: The target "SignAndroidPackage" does not exist in the project.
Done Building Project "D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotif
ication\CGSJDSportsNotification.csproj" (SignAndroidPackage target(s)) -- FAILED.

Done Building Project "D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotif
ication.sln" (SignAndroidPackage target(s)) -- FAILED.


Build FAILED.

"D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotification.sln" (SignAndr
oidPackage target) (1:2) ->
"D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotification\CGSJDSportsNot
ification.csproj" (SignAndroidPackage target) (3:11) ->
  D:\Software Development\Visual Studio\C#\Mobile\Android\CGSJDSportsNotification\CGSJDSportsNotification\CGSJDSportsNo
tification.csproj : error MSB4057: The target "SignAndroidPackage" does not exist in the project.

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:09.02

AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.mutu_adi_marian.cgs_jdsportsnotification" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="25" android:targetSdkVersion="29" />
    <application android:label="CGSJDSportsNotification.Android" android:icon="@drawable/appIcon"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
</manifest>

1 Ответ

0 голосов
/ 20 июня 2020

Ниже решения:

Прежде всего убедитесь, что для EnableLongPaths установлено значение 1 в реестре (У меня это уже было 1)

Откройте свой .csproj и . Android .csproj с помощью Notepad ++ или даже Windows Notepad и сначала попробуйте только с этой строкой

<PropertyGroup>
    <UseShortFileNames>True</UseShortFileNames>
</PropertyGroup>

Удалите bin и obj папка из .csproj и . Android .csproj , откройте решение и попробуйте использовать «Архивировать все», если все еще не работает, закройте решение, снова откройте файлы и добавьте эту строку

<PropertyGroup>
   <IntermediateOutputPath>SHORTEN_FOLDER: I still used my main prject folder but in the root I created a .in folder</IntermediateOutputPath>
</PropertyGroup>

Удалите папку bin и obj из .csproj и . Android .csproj, откройте решение и попробуйте использовать «Архивировать все».

На этом этапе Visual Studio все еще жаловалась на слишком длинный Путь к архиву , поэтому я просто переместил Моя папка архива на сокращенный путь, и это устранило проблему.
(Чтобы изменить путь к архиву с go на Инструменты> Параметры> Xamarin> Расположение архивов )

Надеюсь, это тоже поможет вам, может быть, второй вариант, который может решить эту проблему (потому что перед созданием нового устройства все работало нормально), это переустановить Visual Studio (определенно не подходящий вариант для меня)

...