首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android打包器列表导致应用程序崩溃

Android打包器列表导致应用程序崩溃
EN

Stack Overflow用户
提问于 2016-12-04 15:48:31
回答 1查看 689关注 0票数 0

我对Android程序相当陌生。我今天下载了Android并启动了一个新项目。我使用以下代码向表单添加了一个空活动,并提供了文本视图。

XML:

代码语言:javascript
复制
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

主要代码:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    int flags = PackageManager.GET_META_DATA |
            PackageManager.GET_SHARED_LIBRARY_FILES |
            PackageManager.GET_UNINSTALLED_PACKAGES;

    PackageManager pm = getPackageManager();
    List<ApplicationInfo> applications = pm.getInstalledApplications(flags);
    List<String> applicationsInstalled = new ArrayList<String>();
    for (ApplicationInfo appInfo : applications) {
        if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
            // System application
        } else {
            // Installed by user
            applicationsInstalled.add(appInfo.name);
        }
    }
    TextView tv1 = (TextView)findViewById(R.id.textView1);
    for (String app : applicationsInstalled)
    {
        tv1.append(app);
    }
    setContentView(R.layout.activity_main);
}
}

出于某种原因,应用程序一启动就会崩溃。如果我删除我写的代码,并且只保留到

代码语言:javascript
复制
setContentView(R.layout.activity_main);

它工作得很好,但却是空的。

编辑: Stacktrace https://pastebin.com/dHHygFkQ

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-04 16:07:58

如注释中所述,删除第二个setContentView。

您正在将null传递给tv1.append。当appInfo.name返回null时。请参阅PackageManager's applicationInfo.name is always null

用途:(String)pm.getApplicationLabel(appInfo)

例如:

applicationsInstalled.add((String)pm.getApplicationLabel(appInfo))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40960410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档