应用程序在连接的真实设备上工作,但不是 APK

Posted

技术标签:

【中文标题】应用程序在连接的真实设备上工作,但不是 APK【英文标题】:App working on connected real device but not APK 【发布时间】:2020-11-01 16:50:18 【问题描述】:

以下布局在连接的真实设备上运行良好:

但在构建的 apk 上运行时,显示如下:

我无法找出问题所在,因为它在真实设备上运行应用程序时没有显示任何错误或警告。 有没有办法调试 APK?

如果我注释掉 Gridview.builder,apk 的工作方式与真实设备上的相同。

这是我实现的代码:

  Container myArticles(String imageVal,int index,String univid)
  
    return Container(
      child:Align(
        alignment: Alignment.center,
        child: Card(
          child:Container(
            child: FlatButton(
              color: Colors.white,
            splashColor: Colors.white,
              child:Stack(
               children: <Widget>[
                  Image.asset(imageVal),
              Positioned(
                top: 120,
                left: 8,
                child: Center(
                    child:Container(
                      width: 130,
                      child: Text(widget.data[index]["subject_name"],
                      textAlign: TextAlign.center,
                      style: TextStyle(
                        fontSize: 11.0,
                        fontWeight: FontWeight.bold,
                      ),
                  ),
                    ),
                  
                ),
              ),
              Positioned(
                top: 160,
                left: 40,
                child: Center(
                  child: Text("₹"+widget.data[index]["price"],
                    style: TextStyle(
                      fontSize: 20.0,
                      color: Colors.white,
                    ),
                  ),
                ),
              ),
               ],
              ),
            onPressed: ()async 
             ,
            ),
          ),
          ),
        ),
    );
  
  @override

  Widget build(BuildContext context) 
    return Scaffold(
      backgroundColor: Colors.deepPurple,
      body: ListView(
      
      children:<Widget>[
         Column(
        children: <Widget>[
          Column(
            children: <Widget>[
              Padding(
                padding: const EdgeInsets.fromLTRB(0, 10, 100, 0),
                child: Container(
                  padding: EdgeInsets.fromLTRB(0, 30,200,0),
                  child: IconButton(icon: Icon(Icons.arrow_back,),
                    color: Colors.black,
                    onPressed: () 
                      Navigator.pop(context);
                    ,
                  ),
                ),
              ),
              SizedBox(height: 20,),
              Text('Semester '+ widget.id,
                style: TextStyle(color: Colors.white,
                    fontSize: 35),
              ),
              SizedBox(height: 25,),
              Text('Subjects: '+widget.subcount,
                style: TextStyle(color: Colors.white,
                    fontSize: 17),
              ),

            ],
          ),
          SizedBox(height: 40,),
          Container(
            height: MediaQuery.of(context).size.height - 185,
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.only(topLeft: Radius.circular(75.0)),
            ),
           child: Padding(
             padding: const EdgeInsets.fromLTRB(0,100,0,50),
             child: Expanded(
                    child: GridView.builder(
                      physics: ScrollPhysics(),
                    itemCount: widget.data.length,
                    shrinkWrap: true,
                    scrollDirection: Axis.vertical,
                    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                      crossAxisCount: 2,
                    ),
                    itemBuilder: (BuildContext context, int index)
                      return Container(
                        child: myArticles("assets/NewSub/1.png",index,widget.data[index]["univ_spec_sub_id"].toString()),
                        
                      );
                    ,
                  ),
                ),
           ),
          ),
        
        ],
  ),
      ],
      ),
    );
  


【问题讨论】:

所有基于 API 调用构建的小部件是否存在此问题?是否添加了上网权限***.com/questions/55603979/… 【参考方案1】:

构建 apk 后,将其安装在真正的 android 设备中。您仍然可以看到应用程序日志。 希望您已正确设置所有 adb 和 sdk(因为您可以在构建时在设备上运行应用程序)按照以下步骤调试 apk。

    在设备上安装 apk 打开应用 使用 USB 将设备连接到您的系统(用于构建 Flutter 应用程序)。 打开您的控制台 输入flutter logs 您将在您的 Android 设备上看到来自任何 Flutter 运行应用程序的所有日志。

这不会解决您的列表视图不显示问题,但可以让您查看所有日志,了解您为什么看不到列表,而不是从日志中找出错误所在。

【讨论】:

太棒了!!感谢您的帮助

以上是关于应用程序在连接的真实设备上工作,但不是 APK的主要内容,如果未能解决你的问题,请参考以下文章

颤振互联网连接无法在真实设备上运行

签名的 apk 不工作,但未签名的 apk 工作

Android Studio 应用程序可在真实设备上运行,但无法在模拟器上运行

iOS安全区域无法在真实设备上运行

调试 APK 工作正常,包中的 APKS 工作正常,但发布包不能正常工作

在没有 USB 的真实设备上测试 android 应用程序