2016-03-24 10 views
7

Sto utilizzando Xamarin in Visual Studio.L'app Xamarin per Android si chiude immediatamente dopo l'avvio

ho creato un app Android testo standard (clicca me) e ho provato la seguente:

Scenario 1:

  1. Passa alla modalità di rilascio

  2. tasto destro del mouse sul progetto> Esporta Android Pacchetto (.apk)

  3. Caricamento laterale generato .apk sul mio telefono

  4. App lancia senza alcun problema

Scenario 2

  1. Passa alla modalità di rilascio

  2. Strumenti> Android> Pubblica Android App

  3. Firmato APK dopo la creazione keystore privato

  4. carico laterale generato .apk (nella cartella stampa) sul telefono

  5. App chiude subito dopo il lancio (nessun messaggio di errore, niente)

Quale potrebbe essere il problema qui?

Devo fare qualcos'altro dopo aver firmato il pacco?

In entrambi i casi, l'apk uscita è la stessa dimensione 5227kb

UPDATE:

Ho provato la stessa cosa esecuzione sul emulatore Android. Stessi risultati L'app funziona correttamente in modalità di debug sull'emulatore. Una volta che ho passato a rilasciare, ottengo "Purtroppo, App1 si è fermato"

Ecco il log degli errori http://pastebin.com/4j1Vwtgf

UPDATE 2:

Ecco i registri quando sono la distribuzione in modalità di rilascio:

1>Starting deploy 5" KitKat (4.4) XXHDPI Phone ... 
1>Deploying 5" KitKat (4.4) XXHDPI Phone ... 
1>Build started. 
1>C:\Program Files (x86)\MSBuild\14.0\bin\csc.exe /noconfig /nowarn:1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE;__XAMARIN_ANDROID_v1_0__;__MOBILE__;__ANDROID__;__ANDROID_1__;__ANDROID_2__;__ANDROID_3__;__ANDROID_4__;__ANDROID_5__;__ANDROID_6__;__ANDROID_7__;__ANDROID_8__;__ANDROID_9__;__ANDROID_10__;__ANDROID_11__;__ANDROID_12__;__ANDROID_13__;__ANDROID_14__;__ANDROID_15__;__ANDROID_16__;__ANDROID_17__;__ANDROID_18__;__ANDROID_19__;__ANDROID_20__;__ANDROID_21__;__ANDROID_22__;__ANDROID_23__ /errorendlocation /preferreduilang:en-US /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v6.0\Mono.Android.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll" /debug:pdbonly /filealign:512 /optimize+ /out:obj\Release\App1.dll /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /target:library /utf8output MainActivity.cs Resources\Resource.Designer.cs Properties\AssemblyInfo.cs "C:\Users\a\AppData\Local\Temp\MonoAndroid,Version=v6.0.AssemblyAttributes.cs" obj\Release\\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs obj\Release\\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs obj\Release\\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 
1>App1 -> C:\Users\a\Documents\Visual Studio 2015\Projects\App1\App1\bin\Release\App1.dll 
1> Processing: obj\Release\res\layout\main.xml 
1> Processing: obj\Release\res\values\strings.xml 
1>C:\Program Files (x86)\Java\jdk1.7.0_55\\bin\keytool.exe -list -alias androiddebugkey -storepass android -keypass android -keystore "C:\Users\al\AppData\Local\Xamarin\Mono for Android\debug.keystore" 
1>C:\Program Files (x86)\Java\jdk1.7.0_55\\bin\jarsigner.exe -keystore "C:\Users\a\AppData\Local\Xamarin\Mono for Android\debug.keystore" -storepass android -keypass android -digestalg SHA1 -sigalg md5withRSA -signedjar bin\Release\\App1.App1-Signed-Unaligned.apk "C:\Users\a\Documents\Visual Studio 2015\Projects\App1\App1\obj\Release\android\bin\App1.App1.apk" androiddebugkey 
1>No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2046-02-20) or after any future revocation date. 
1>C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1\zipalign.exe 4 "C:\Users\a\Documents\Visual Studio 2015\Projects\App1\App1\bin\Release\App1.App1-Signed-Unaligned.apk" "bin\Release\\App1.App1-Signed.apk" 
1>Build succeeded. 
1>Deploy successfully on 5" KitKat (4.4) XXHDPI Phone 

e qui ci sono i log di generazione per la modalità di debug

2>Starting deploy 5" KitKat (4.4) XXHDPI Phone ... 
2>Deploying 5" KitKat (4.4) XXHDPI Phone ... 
2>Build started. 
2>C:\Program Files (x86)\Java\jdk1.7.0_55\\bin\keytool.exe -list -alias androiddebugkey -storepass android -keypass android -keystore "C:\Users\a\AppData\Local\Xamarin\Mono for Android\debug.keystore" 
2>C:\Program Files (x86)\Java\jdk1.7.0_55\\bin\jarsigner.exe -keystore "C:\Users\a\AppData\Local\Xamarin\Mono for Android\debug.keystore" -storepass android -keypass android -digestalg SHA1 -sigalg md5withRSA -signedjar bin\Debug\\App1.App1-Signed-Unaligned.apk "C:\Users\a\Documents\Visual Studio 2015\Projects\App1\App1\obj\Debug\android\bin\App1.App1.apk" androiddebugkey 
2>No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2046-02-20) or after any future revocation date. 
2>C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1\zipalign.exe 4 "C:\Users\a\Documents\Visual Studio 2015\Projects\App1\App1\bin\Debug\App1.App1-Signed-Unaligned.apk" "bin\Debug\\App1.App1-Signed.apk" 
2>Build succeeded. 
2>Deploy successfully on 5" KitKat (4.4) XXHDPI Phone 
+0

hai guardato i registri del dispositivo? – Jason

+0

@Jason Post principale aggiornato –

+0

Hai eliminato l'app Scenario 1 prima di installare l'app Scenario 2? In caso contrario: potresti provare questo? –

risposta

1

All'interno dei log di pastebin, sembra che tu abbia un errore specifico qui. Sembra che il libmonodroid.so non venga caricato qui.

03-25 00:40:18.531 E/AndroidRuntime(1407): java.lang.UnsatisfiedLinkError: Couldn't load monodroid from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/App1.App1-1.apk"],nativeLibraryDirectories=[/data/app-lib/App1.App1-1, /system/lib]]]: findLibrary returned null

Questo problema in genere significa che per qualche motivo libmonodroid.quindi non viene installato.

lo consiglio i seguenti elementi:

  1. uso adb uninstall <package name> per rimuovere completamente tutte le vecchie applicazioni App1.App1.
  2. Clean/Rigenerare il progetto (Anche essere sicuri di eliminare manualmente le cartelle bin/obj nella soluzione.

Se questo continua ad essere un problema. Garantire un File-> Nuovo progetto Android Debug e anche installare correttamente come Release .apk. Dovresti anche raccogliere adb logcat dei tuoi tentativi dopo aver seguito i passaggi 1-2.

3

Ho avuto un problema simile con un'app di base quando ho iniziato con Xamarin. Il problema era con il file apk I Stava usando. L'ho preso dalla mia cartella bin/Release mentre il percorso per l'app firmata + pubblicata + zip-allineata era al livello della cartella di progetto al di fuori della directory bin .

Il file signed.apk in modalità di rilascio utilizza il keystore di debug e quindi non è possibile pubblicare tale, ulteriori informazioni here.

Era una cosa piuttosto sciocca da parte mia, quindi nel caso in cui qualcun altro abbia questo problema, assicurati di scegliere il file apk corretto prima di eseguire ulteriori debugging.

+0

Questo era il mio problema. Grazie mille! – PythonNut

3

Ho avuto lo stesso errore durante l'esecuzione di build di rilascio nell'emulatore (emulatore VS Android). Risulta, abbiamo disabilitato x86 come architettura supportata.

Advanced build properties

+0

Hai salvato la mia giornata, grazie! –

+0

funziona bene per me .... grazie mille –

Problemi correlati