首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android应用程序在启动时崩溃(致命异常,未找到ID为0xffffffff的软件包ID ff )

android应用程序在启动时崩溃(致命异常,未找到ID为0xffffffff的软件包ID ff )
EN

Stack Overflow用户
提问于 2021-04-21 19:32:12
回答 1查看 405关注 0票数 0

因此,每当我尝试启动我的应用程序时,它都会立即崩溃。日志中的错误是:

代码语言:javascript
复制
    2021-04-21 13:18:57.147 5707-5707/com.example.myapp E/com.example.myapp: No package ID ff found for ID 0xffffffff.
2021-04-21 13:18:57.148 5707-5707/com.example.myapp D/AndroidRuntime: Shutting down VM
2021-04-21 13:18:57.153 5707-5707/com.example.myapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapp, PID: 5707
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0xffffffff
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0xffffffff
        at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:237)
        at android.content.res.Resources.getValue(Resources.java:1428)
        at androidx.appcompat.widget.ResourceManagerInternal.createDrawableIfNeeded(ResourceManagerInternal.java:176)
        at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:141)
        at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:132)
        at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:104)
        at androidx.appcompat.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:90)
        at androidx.appcompat.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:98)
        at com.example.myapp.MainActivity.onCreate(MainActivity.kt:25)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

它与我在MainActivity中的代码有关,但我不知道哪里出了问题,因为它在一段时间前实际上是有效的,然后出现了这个错误。

MainActivity

代码语言:javascript
复制
package com.example.myapp

import android.content.res.TypedArray
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ImageView
import kotlin.random.Random


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val images: TypedArray = resources.obtainTypedArray(R.array.images)


        val imageView1 = findViewById<ImageView>(R.id.imageView1)
        val imageView2 = findViewById<ImageView>(R.id.imageView2)
        val imageView3 = findViewById<ImageView>(R.id.imageView3)
        val imageView4 = findViewById<ImageView>(R.id.imageView4)
        val imageView5 = findViewById<ImageView>(R.id.imageView5)
        val imageView6 = findViewById<ImageView>(R.id.imageView6)

        imageView1.setImageResource(images.getResourceId(Random.nextInt(20000), -1))

        imageView2.setImageResource(images.getResourceId(Random.nextInt(20000), -1))

        imageView3.setImageResource(images.getResourceId(Random.nextInt(20000), -1))

        imageView4.setImageResource(images.getResourceId(Random.nextInt(20000), -1))

        imageView5.setImageResource(images.getResourceId(Random.nextInt(20000), -1))

        imageView6.setImageResource(images.getResourceId(Random.nextInt(20000), -1))
    }
}

arrays.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="images">
        <item>image1</item>
        <item>image2</item>
...
        <item>image20000</item>
    </array>
</resources>
EN

回答 1

Stack Overflow用户

发布于 2021-04-22 18:00:04

在这种情况下,您需要将可绘制的资源id传递给您的imageView.setImageResource。在本例中,您传递的不是doing的资源id,而是数组项的资源id。

你可以在here上查看,了解setImageResource是如何工作的。

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

https://stackoverflow.com/questions/67195020

复制
相关文章

相似问题

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