7
respostas

App sem imagens

Pessoal, bom dia!

Estou com um problema relacionado ao apk gerado. Esse é meu primero app - o projeto é Flutter. O que ocorre: Em ambiente de desenvolvimento roda esta perfeito. Porém após gerar o apk e subir para a loja, nenhuma imagem ou som está presente. Até mesmo a imagem do ícone após baixar, não aparece.

Já procurei referencias sobre esse problema e não encontrei nada. Seria necessário subir as imagens de alguma forma diferente? Algum dica? obrigado! abcs, André

7 respostas

Oi André, para ter certeza do problema a gente teria que ver o código, você pode disponibiliza ele pra gente?

Outra coisa, gerar o apk é um pouco mais complicado para o inicio do aprendizado em Flutter, temos muitas informações ainda pra te passar antes de gerar um aplicativo concreto para expor na PlayStore.

Quanto ao som, pode me explicar melhor o que emite som no seu app? Ou seria apenas os sons básicos de botões?

Kako, boa noite.

Obrigado pelo retorno. Vou colocar o código aqui, espero que seja possível entender. Qualquer coisa eu mando mais ou de outra forma. Eu entendo que me adiantei em relação ao que aprendi, minha intenção é conseguir realizar o ciclo completo. Quanto ao som, emite sons de animais.

main.dart:

import 'package:ca/screen/inicial.dart'; import 'package:flutter/material.dart';

void main() { runApp(const MyApp()); }

class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key);

@override State createState() => _MyAppState(); }

class _MyAppState extends State { // This widget is the root of your application. @override bool opacidade = true; Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: Inicial(), ); } }

não coloquei a inicial.dart porque não caberia devido ao limite

animais.dart:

import 'package:audioplayers/audioplayers.dart';

import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart';

void main() { runApp(MyApp()); }

class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Comunicação Alternativa AM', theme: ThemeData( primarySwatch: Colors.amber, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: Animais(), ); } }

class Animais extends StatefulWidget { const Animais({Key? key}) : super(key: key);

@override State createState() => _AnimaisState(); }

class _AnimaisState extends State {

final AudioCache _audioCache = AudioCache( prefix: 'audio/', fixedPlayer: AudioPlayer()..setReleaseMode(ReleaseMode.STOP), );

@override Widget build(BuildContext context) {

return Scaffold(
  appBar: AppBar(
    title: const Text('Animais'),
    backgroundColor: Colors.amber,
  ),
  body: Center(
    child: Container(
      decoration: BoxDecoration(
        border: Border.all(width: 4, color: Colors.amberAccent),
      ),
      child: Center(
        child: Container(
          height: double.infinity,
          width: double.infinity,

          decoration: BoxDecoration(
              gradient: LinearGradient(
                begin: Alignment.topRight,
                end: Alignment.bottomLeft,
                colors: [
                  Colors.limeAccent,
                  Colors.amber,
                ],
              )
          ),

          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children:[
              MontaLinha(primeiro: 'gato', segundo: 'cachorro', terceiro: 'coruja'),
              MontaLinha(primeiro: 'vaca', segundo: 'cavalo', terceiro: 'ovelha'),
              MontaLinha(primeiro: 'galo', segundo: 'galinha', terceiro: 'pintinho'),
              MontaLinha(primeiro: 'leao', segundo: 'tigre', terceiro: 'elefante'),
              MontaLinha(primeiro: 'passaro', segundo: 'aguia', terceiro: 'tucano'),
            ],
          ),
        ),
      ),
    ),
  ),
);

} }

class MontaLinha extends StatelessWidget { final String primeiro; final String segundo; final String terceiro;

const MontaLinha({ Key? key, required this.primeiro, required this.segundo, required this.terceiro, }) : super(key: key);

@override Widget build(BuildContext context) { return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ buildColumn(primeiro), buildColumn(segundo), buildColumn(terceiro), ], ); }

Column buildColumn(final produto) { return Column( children: [ new Image.asset( 'images/animais/' + produto + '.png', width: 60.0, height: 60.0, fit: BoxFit.cover, ), ElevatedButton( style: ElevatedButton.styleFrom(primary: Colors.amber), child: Text(produto.toUpperCase()), onPressed: () { playSound('animais/' + produto + '-texto.mp3'); playSound('animais/' + produto + '.mp3'); }, ), ], ); } }

void playSound(String audio){ final AudioCache _audioCache = AudioCache( prefix: 'audio/', fixedPlayer: AudioPlayer()..setReleaseMode(ReleaseMode.STOP), ); _audioCache.play(audio);

}

referencia para imagens e sons no pubspec.yaml:
 assets:
- assets/images/
- assets/audio/

Cara que projeto MANEIRO!

Mas infelizmente do modo em que o codigo esta apresentado eu não consigo testar para verificar, você consegue colocar ele num github e me mandar o Link? Assim eu posso testar aqui!

Quanto ao código eu duvido que tenha algo muito errado na verdade, você fez um bom trabalho ao que eu posso avaliar minimamente aqui, porém ao gerar a apk, vc deve testa-lo num dispositivo antes ( na verdade vc tem que testar em varios dispositivos, mas não ta na hora dessa aula ainda ), e depois disponibiliza-lo na Play Store ( apesar de que ter um app seu na Play Store é muito maneiro )!

Eu tenho que dar uma estudada nesse AudioCache ai, mas se eu não me engano ja tem um tempo que você tem que PERMITIR que o app gere ruido, então pode ser por isso que o som não ta pegando, agora quanto as imagens, eu não tenho ideia do porque, mas pode ser algum problema no pubspec.yaml, da uma olhadinha nesse topico do StackOverFlow

Fico no Aguardo pelo seu codigo no GitHub, quero muito brincar com seu projeto u.u

Kako, bom dia!

obrigado pelo retorno e pelos elogios ;)) eu vou disponibilizar no git hub e te mando o link. eu percebi que a colagem aqui ficou inviável rsrs

um abraço e mais uma vez obrigado! André

Kako, tudo bem?

olha eu subi o projeto pro git:

https://github.com/andreperson/ca.git

git@github.com:andreperson/ca.git

caso queira ve-lo na loja procure por ca andreia meneguel o ícone é um fone de ouvido com um CA no meio. muito obrigado pela ajuda grande abraço André

Bom dia André!

Dei uma olhadinha e imagino que o erro seja simples de resolver!

Olhando nesse link do StackOverFlow -> https://stackoverflow.com/questions/72588600/i-cant-display-images-in-my-apk-release-in-flutter Descobri que para assets em apks ( Sim eu não sabia desse detalhe antes ), você deve usar todos os subdiretórios para que funcione perfeitamente.

No seu código ele está assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidadePorém seus assets tem muitos subdiretorios internos, por exemplo o audio: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Logo para que funcione perfeitamente, acredito que você deva alterar no seu pubspec.yaml para receber esses outros subdiretórios também!

assets:
    - assets/images/
    - assets/audio/
    - assets/images/animais/
    - assets/audio/animais/

Faz uns testes e me conta aqui o que deu!

Kako, boa tarde.

Desculpe a demora em retornar. Vou fazer os testes e te retorno, acredito que va dar certo.

obrigado pela ajuda abraços André