dart Flutter应用程序(Android)在发布模式下无法在真实的设备上工作

pkln4tw6  于 2023-09-28  发布在  Flutter
关注(0)|答案(2)|浏览(102)

我一直在构建一个演示应用程序来练习Flutter,该应用程序在模拟器中运行得非常好,在连接时在真实的设备上也是如此。但现在,我一直试图在我的移动的上运行APK文件,它似乎不工作.我可以登录到应用程序,这意味着互联网权限正在工作。但是当涉及到从服务器提取数据的主屏幕时,该应用程序不起作用。也许在相关的代码中有什么错误,但我似乎无法修复它。
我已经附加了主屏幕的代码,以及,供应商的一部分是有问题的事情。而且数据库中的数据意味着列表根本不是空的

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

import './new_enquiry_screen.dart';
import '../providers/enquiries_provider.dart';
import '../screens/new_enquiry_screen.dart';
import '../widgets/drawer_widget.dart';
import '../widgets/follow_up_list_tile_widget.dart';

class EnquiryScreen extends StatelessWidget {
  const EnquiryScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 3,
      child: Scaffold(
        drawer: DrawerWidget(),
        appBar: AppBar(
          bottom: const TabBar(
            tabs: [
              Tab(text: 'Follow Ups'),
              Tab(text: 'Leads'),
              Tab(text: 'Past'),
            ],
          ),
          title: Text(
            'Enquiries',
          ),
          backgroundColor: Theme.of(context).primaryColor,
        ),
        body: TabBarView(
          children: [
            ChangeNotifierProvider<EnquiriesProvider>.value(
              value: EnquiriesProvider(),
              child: Consumer<EnquiriesProvider>(
                builder: (_, provider, child) {
                  int length = provider.enquiries.length;
                  return length == 0
                      ? Center(
                          child: CircularProgressIndicator(),
                        )
                      : ListView.builder(
                          itemCount: length,
                          itemBuilder: (_, index) {
                            return FollowUpListTileWidget(
                              provider.enquiries.elementAt(index),
                            );
                          },
                        );
                },
              ),
            ),
            const Center(
              child: Text('Leads Up'),
            ),
            const Center(
              child: Text('Past Up'),
            ),
          ],
        ),
        floatingActionButton: FloatingActionButton(
          backgroundColor: Theme.of(context).primaryColor,
          onPressed: () {
            Navigator.of(context).pushNamed(NewEnquiryScreen.routeName);
          },
          child: Icon(
            Icons.add,
            color: Theme.of(context).accentColor,
            size: 30,
          ),
        ),
      ),
    );
  }
}
import 'package:flutter/material.dart';

import '../models/enquiry.dart';

class FollowUpListTileWidget extends StatelessWidget {
  const FollowUpListTileWidget(this._enquiry, {Key? key}) : super(key: key);

  final Enquiry _enquiry;

  @override
  Widget build(BuildContext context) {
    return Card(
      elevation: 10,
      margin: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 5.0),
      child: ListTile(
        leading: CircleAvatar(
          child: Text(
            _enquiry.name.characters.first.toUpperCase(),
            style: TextStyle(
              color: Theme.of(context).accentColor,
            ),
          ),
          backgroundColor: Theme.of(context).primaryColor,
        ),
        title: Text(_enquiry.name),
        subtitle: FittedBox(child: Text(_enquiry.email)),
        trailing: Row(
          mainAxisSize: MainAxisSize.min,
          children: [
            IconButton(
              color: Theme.of(context).primaryColor,
              onPressed: () {},
              icon: const Icon(
                Icons.phone,
              ),
            ),
            IconButton(
              color: Theme.of(context).primaryColor,
              onPressed: () {},
              icon: const Icon(Icons.whatsapp),
            ),
            IconButton(
              color: Theme.of(context).primaryColor,
              onPressed: () {},
              icon: const Icon(Icons.edit),
            ),
          ],
        ),
      ),
    );
  }
}
1l5u6lss

1l5u6lss1#

尝试在真实的设备中的调试模式下运行应用程序,如果它正在工作,则检查清单文件,您已在调试模式下默认在android/app/main/AndroidManifest.xml内部给予互联网权限或不在互联网权限已经退出,最重要的是,请从您的问题标题中删除所有大写字母,因为它很难阅读。

g6baxovj

g6baxovj2#

\android\app\src\main\AndroidManifest.xml文件,用于在网络中添加权限使用

<uses-permission android:name="android.permission.INTERNET" />

Example image

相关问题