C'est une application WhatsApp History Saver. Jusqu'à Android 9 C'est bien, mais quand j'ai essayé de l'utiliser sur Android 10, il se bloque avec la trace de pile ci-dessous: private fun loadStories() {
if (!storagePermissionGranted()) {
toast(getString(R.string.message_permissions_required))
stopRefreshing()
return
}
val dir = File(K.WHATSAPP_STORIES)
if (!dir.exists())
dir.mkdirs()
doAsync {
val files = dir.listFiles { _, s ->
s.endsWith(".mp4") || s.endsWith(".gif") }
uiThread {
if (files.isNotEmpty()) {
hasStories()
for (file in files.sortedBy { it.lastModified() }.reversed()) {
val story = Story(K.TYPE_VIDEO, file.absolutePath)
adapter.addStory(story)
}
} else {
noStories()
}
stopRefreshing()
}
}
}
3 Réponses :
Changer si (fichiers.Isnotempty ()) {à si (fichiers? .Isempty ()! = false) { p>
Fichiers? .Isempty ()! = FALSE code> est vrai si
Fichiers code> est
NULL code>, alors je vais lancer au
Files.sorted ... code>.
@Alexey mon mauvais, devrait être? .Isnotempty () == vrai
Après avoir utilisé ce si (fichiers? .isnotempty () == true) { code> 2020-08-07 15: 11: 02.865 28678-28811 / com.shaikjaleel.wsave E / Perf: échec de l'obtention de fichier Liste com.shaikjaleel.wsave 20: 02.86-07 15: 11: 02.865 / com.shaikjaleel.wsave E / Perf: getFoldersize (): exception_1 = java.lang.nullpointException: tentative d'obtenir la longueur de Null Array Now app s'ouvre bien, mais il ne synchronise pas les fichiers du répertoire
Je ne suis pas sûr de savoir pourquoi ce
Utilisation non sécurisée d'un récepteur nullable de type tableau
? p> BlockQuote> est juste un avertissement au lieu d'une erreur. J'assume aussi la ligne 84 dans le message d'erreur est p>
xxx pré> si oui, je la réécris comme p>
xxx pré> ou p>
xxx pré> mais je pense que le premier est plus propre. p> p>
Oui, je sais que c'est juste un avertissement. Mais lorsque vous venez de faire cette application compatible avec l'API 29 Android 10 applaises d'applications avec le journal d'erreur ci-dessus. Tout va bien jusqu'à Android 9 API 28. Si je fais que l'application Changements ci-dessous ne change pas, il est installé, mais plus tard, il ne montre pas les fichiers de répertoires. (Il reste toujours nul) signifie aucun fichier
si (fichiers? .isnotempty () ?: FAUX) CODE> Ajout de cette question et lisez soigneusement les journaux C'était le problème avec: Android.System.errnoException: Open Échec: EACCE (autorisation refusée) alors j'ai ajouté Cette permission dans
Android: DemandleGacyexternalStorage = "vrai" code> dans Manifest Le problème est corrigé maintenant merci à tout le monde