【问题标题】:Android App is running on some devices but doesn't on another devices...How to solve that?Android 应用程序在某些设备上运行,但在其他设备上没有运行......如何解决这个问题?
【发布时间】:2021-04-14 05:53:30
【问题描述】:

我的应用程序在具有 android 10 的华为 Y9 prime 上完美运行,它在具有 android 6 的 Redmi Note 4 上崩溃。我使用 Android 5 制作了该项目...当我在 Redmi Note 4 上安装应用程序时'没有开始......一个白屏出现了很短的时间并且浮动...... logcat中没有显示错误,但这显示在“运行”中,当我点击应用程序图标3-4次时也是如此-

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.js11.a8minutesworkout, PID: 29896
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.js11.a8minutesworkout/com.js11.a8minutesworkout.MainActivity}: android.view.InflateException: Binary XML file line #25: Binary XML file line #25: Error inflating class <unknown>
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
    at android.app.ActivityThread.access$900(ActivityThread.java:153)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5438)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
 Caused by: android.view.InflateException: Binary XML file line #25: Binary XML file line #25: Error inflating class <unknown>
    at android.view.LayoutInflater.inflate(LayoutInflater.java:543)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
    at com.js11.a8minutesworkout.MainActivity.onCreate(MainActivity.kt:15)
    at android.app.Activity.performCreate(Activity.java:6303)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 
    at android.app.ActivityThread.access$900(ActivityThread.java:153) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5438) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628) 
 Caused by: android.view.InflateException: Binary XML file line #25: Error inflating class <unknown>
    at android.view.LayoutInflater.createView(LayoutInflater.java:649)
    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:698)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:766)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:708)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:839)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:802)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:842)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:802)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:519)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) 
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) 
    at com.js11.a8minutesworkout.MainActivity.onCreate(MainActivity.kt:15) 
    at android.app.Activity.performCreate(Activity.java:6303) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 
    at android.app.ActivityThread.access$900(ActivityThread.java:153) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5438) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at android.view.LayoutInflater.createView(LayoutInflater.java:623)
    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:698) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:766) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:708) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:839) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:802) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:842) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:802) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:519) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) 
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) 
    at com.js11.a8minutesworkout.MainActivity.onCreate(MainActivity.kt:15) 
    at android.app.Activity.performCreate(Activity.java:6303) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 
    at android.app.ActivityThread.access$900(ActivityThread.java:153) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5438) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628) 
 Caused by: android.content.res.Resources$NotFoundException: Resource "com.js11.a8minutesworkout:drawable/item_color_accent_border_ripple_background" (7f07008c) is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f07008c a=-1 r=0x7f07008c}
    at android.content.res.Resources.loadDrawableForCookie(Resources.java:2646)
    at android.content.res.Resources.loadDrawable(Resources.java:2580)
    at android.content.res.MiuiResources.loadDrawable(MiuiResources.java:387)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:872)
    at android.view.View.<init>(View.java:3955)
    at android.view.ViewGroup.<init>(ViewGroup.java:574)
    at android.widget.LinearLayout.<init>(LinearLayout.java:203)
    at android.widget.LinearLayout.<init>(LinearLayout.java:199)
    at android.widget.LinearLayout.<init>(LinearLayout.java:195)
    at java.lang.reflect.Constructor.newInstance(Native Method) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:623) 
    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:698) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:766) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:708) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:839) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:802) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:842) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:802) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:519) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) 
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) 
    at com.js11.a8minutesworkout.MainActivity.onCreate(MainActivity.kt:15) 
    at android.app.Activity.performCreate(Activity.java:6303) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 
    at android.app.ActivityThread.access$900(ActivityThread.java:153) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5438) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

MainActivity 代码 -

class MainActivity : AppCompatActivity() {
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN)

    window.navigationBarColor = resources.getColor(R.color.backgroundColor)

    llStart.setOnClickListener {
        val intent = Intent(this, ExerciseActivity::class.java)
        startActivity(intent)
    }

    llBMI.setOnClickListener{
        val intent = Intent(this, BMIActivity::class.java)
        startActivity(intent)
    }

    llHistory.setOnClickListener {
        val intent = Intent(this, HistoryActivity::class.java)
        startActivity(intent)
    }
}    

}

drawable/item_color_accent_border_ripple_background -

<?xml version="1.0" encoding="utf-8"?>

<item android:id="@android:id/mask">
    <shape android:shape="oval">
        <solid android:color="#000000" /><!--ye color jahe jo bhi rkho isse frk nh pdne wala-->
    </shape>
</item>

<item android:drawable="@drawable/item_circular_color_accent_border" />

我是 android 开发的新手,我对这个问题感到非常沮丧..

请帮忙

【问题讨论】:

  • 不要在任何点击监听器中使用这个,而是在用户 MainActivity.this 中使用
  • 检查“com.js11.a8minutesworkout:drawable/item_color_accent_border_ripple_background”。 Android 无法找到此资源。您是否将其添加到任何特定的值目录中?
  • AnujMathur_07,如果 android 无法找到此资源,则该应用程序也无法在 Huawei Y9 Prime 上运行,但它正在运行...

标签: android xml kotlin crash


【解决方案1】:

也许您可以更改 android sdk 版本。 在 androidmanifest.xml 文件中。 targetsdkversion 和 minsdkversion 先检查。

【讨论】:

    【解决方案2】:
    llStart.setOnClickListener {
        val intent = Intent(MainActivity.this, ExerciseActivity::class.java)
        startActivity(intent)
    }
    
    llBMI.setOnClickListener{
        val intent = Intent(MainActivity.this, BMIActivity::class.java)
        startActivity(intent)
    }
    
    llHistory.setOnClickListener {
        val intent = Intent(MainActivity.this, HistoryActivity::class.java)
        startActivity(intent)
    }
    

    只有this会指向父函数onclicklistener,所以你想使用activity的上下文然后你应该使用className.this

    【讨论】:

    • 如果你传入了错误类型的变量,为什么还要编译?
    • 你在哪一行出现错误??这是错误??
    • 您必须阅读 OP 给出的实际问题,他们正在获取堆栈跟踪。这意味着应用程序正在运行。如果您将错误的值传递给参数,它将不会运行
    • a_local_nobody,是的,你是对的......如果它是错误的,那么应用程序将无法在华为 Y9 Prime 上运行,但它正在运行......
    猜你喜欢
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    相关资源
    最近更新 更多