我写了一些程序,它从主机获取流数据。我使用了这个例子:https://code.google.com/p/streamscraper/它在我的Android虚拟设备(2.3.3 API级别10)上工作正常,但是当我创建.apk并安装在Galaxy S4和LG P710上时,我收到错误unfortunately, has stopped
。什么是错的?我该如何调试呢?
答案 0 :(得分:3)
根据您的评论,您将获得例外android.os.NetworkOnMainThreadException
:在新的Android API中,您应该将任何访问网络或互联网的代码放在不同的线程中。
试试这个
new Thread(new Runnable() {
@Override
public void run() {
//Put your code here
}
}).start();
编辑1: 您可以使用Android附带的任何背景线程构造。服务,线程(如上所述)或AsyncTask中的线程。每个人都有利弊。你应该调查一下。小提示,如果您在此活动中播放此内容并访问活动用户界面,请使用AsycnTask。
答案 1 :(得分:1)
要在您的设备上进行调试,您必须在智能手机设备上使用ADB。为此,请在设备上启用USB Debugging
,将其连接到计算机,并确保(如果在Windows
上)安装了USB
个驱动程序。最后启动Eclipse
或Android Studio
并以调试模式启动项目。您应该看到一个控制台输出,其中可以看到设备的完整堆栈跟踪。
如果您无法使用计算机进行调试< - >智能手机,尝试使用BugSense。它是免费的,并且将其库包含到您的项目中,如果发生错误,它会向您发送完整的堆栈跟踪。
答案 2 :(得分:1)
答案 3 :(得分:1)
为什么不直接在设备上运行apk文件而不是在模拟器上运行。??
答案 4 :(得分:0)
在清单文件中检查已设置
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />