【问题标题】:Android App NOT Running on Emulator, but on real deviceAndroid 应用程序不在模拟器上运行,但在真实设备上运行
【发布时间】:2016-09-02 09:37:31
【问题描述】:

Android Studio 2.1、Gradle 2.1.0

我在这里搜索过类似的问题,但没有找到。大多数情况下,模拟器很好,但不是在真实设备上。

问题是,一旦模拟器准备好并启动应用程序,当我单击第一个活动时,应用程序突然崩溃。然后,我尝试在真机上运行,​​一切正常。

第一。这个问题和Apprunning on emulator but not on real device不一样,跟这个是落后的。

第二。编辑器中没有错误,只有一点警告。

第三。日志猫说;致命异常:主要。

我做了什么;

1) 只删除当前模拟器,不删除系统镜像。

2) 重新创建模拟器,尝试再次启动应用程序,应用程序 崩溃了。

3) 删除所有3个系统镜像,重新下载;

ARM EABI v7a 系统映像。

英特尔 x86 Atom_64 系统映像。

英特尔 x86 Atom 系统映像。

崩溃报告;

致命异常:主要 进程:com.example.akmalzaki.uniklattendanceapp2,PID:2942 java.lang.RuntimeException:无法启动活动 组件信息{com.example.akmalzaki.uniklattendanceapp2/com.example.akmalzaki.uniklattendanceapp2.Science}: java.lang.NullPointerException:尝试调用虚拟方法 空对象上的“布尔 android.nfc.NfcAdapter.isEnabled()” 参考 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在 android.app.ActivityThread.-wrap11(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 引起:java.lang.NullPointerException:尝试调用虚拟 空对象上的方法'boolean android.nfc.NfcAdapter.isEnabled()' 参考 在 com.example.akmalzaki.uniklattendanceapp2.Science.onCreate(Science.java:49) 在 android.app.Activity.performCreate(Activity.java:6237) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在 android.app.ActivityThread.-wrap11(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

【问题讨论】:

  • 你应该包括你的崩溃日志
  • @DavidMedenjak 已包含在内。

标签: android image android-studio android-emulator crash


【解决方案1】:

您尝试获取模拟器不支持的 NFC。这可能会导致问题,因为世界上仍然存在没有 NFC 硬件的真实设备。如果它对您的应用程序至关重要,您应该包含清单标签

<uses-feature android:name="android.hardware.nfc" android:required="true" />

这样,不支持 NFC 的设备将无法安装您的应用程序。如果不是很重要,例如您同时启用了 NFC 和 QR 扫描,您可以将其设置为 false,但您应该非常仔细地检查每个询问 NFCAdapter 的方法,例如:

NfcAdapter.getDefaultAdapter(context) !=null

【讨论】:

  • 所以唯一的办法就是在真实设备上运行它?
  • 是的。此外,您应该始终检查 null 以避免崩溃
  • 你知道每次我们想做一些事情,比如打开一个链接,安装了多种类型的浏览器,当然我们的手机会提示我们要使用哪些浏览器。你知道如何让我正在开发的应用程序被这样检测吗?
  • @InfiniteLoops 当然,您只需要在清单中声明意图过滤器即可捕获默认的 Intent 操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 2018-10-23
  • 1970-01-01
  • 2014-03-27
  • 2018-10-29
  • 2012-09-18
相关资源
最近更新 更多