我刚刚在官方文档中发现了NetworkOnMainThreadException
并想知道模拟器是否抛出这个.我一直在测试我的应用程序,据我所知,所有网络都是主线程(使用Roboguice RoboAsyncTask),但你永远不知道是否有人没有逃脱.
我也在使用StrictMode并且没有看到任何东西.
我的代码是干净的还是不会在模拟器上抛出?
我们应该如何为生产中的这种情况做好准备?
宽限期或其他什么?或者现在已经过去了;-) ??
networking android asynchronous android-asynctask networkonmainthread
嗨所有的观众和读者,我正在使用链接.每当我在单独的包中运行此代码时,它工作正常,但每当我尝试在我的应用程序中嵌入此示例时,得到遗憾的应用程序已停止,只有当我单击选项卡时调用它的特定选项卡,并且Logcat说: -
Caused by: android.os.NetworkOnMainThreadException
10-30 15:07:35.341: E/AndroidRuntime(732): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117),
Run Code Online (Sandbox Code Playgroud)
请告诉我我需要做什么使它对我有用,除了这个特定的选项卡整个应用程序工作正常.
10-30 15:07:26.770: D/dalvikvm(732): GC_FOR_ALLOC freed 61K, 3% free 8035K/8259K, paused 39ms, total 46ms
10-30 15:07:26.781: I/dalvikvm-heap(732): Grow heap (frag case) to 8.481MB for 614416-byte allocation
10-30 15:07:26.850: D/dalvikvm(732): GC_CONCURRENT freed 1K, 4% free 8634K/8903K, paused 27ms+13ms, total 71ms
10-30 15:07:26.881: D/dalvikvm(732): GC_FOR_ALLOC freed 0K, 4% free 8634K/8903K, paused 28ms, total 28ms
10-30 15:07:26.900: I/dalvikvm-heap(732): Grow heap (frag case) to 9.798MB for 1382416-byte allocation
10-30 15:07:26.970: D/dalvikvm(732): GC_CONCURRENT …
Run Code Online (Sandbox Code Playgroud) 我一直在研究Android中的语音识别API,发现当语言设置改变时语音结果会有所不同,有没有办法以编程方式设置它?或者是否打算在语音设置屏幕上午餐?或者还有什么?注意:我试图使用这个额外的意图:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
Run Code Online (Sandbox Code Playgroud)
但它无效
我从早上开始尝试创建一个可可触摸farmework,将我自己的小部件放在其中,并允许我正在使用的任何应用程序将来使用它.
我已设法构建项目并导出.framework文件,但所有资产现在都没有显示.我的所有图片都在资产目录中.
它们似乎是导出的,因为.framework文件里面有(assets.car)文件.
我正在使用它来访问它们
UIImage* icon = [UIImage imageNamed:@"iconName"];
Run Code Online (Sandbox Code Playgroud)
但它总是返回null,任何想法?
我一直试图在上周左右开始工作,但仍然不知道问题是什么.它适用于Android 2.1但不适用于4.1.我已经在服务中找到了这个字符串,检查我的应用程序中的更新.
latestVersion = Integer.parseInt(getHttpString(urlLatestVersion));
Run Code Online (Sandbox Code Playgroud)
它在checkForUpdate()中调用; 在onStart中调用(Intent intent,int startId);.
private String getHttpString(String urlString) throws IOException {
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try {
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
} catch (Exception ex) {
ex.printStackTrace();
//
//main error currently lies here
// TODO …
Run Code Online (Sandbox Code Playgroud) android onstart httpurlconnection android-asynctask networkonmainthread
我需要执行第三方开源程序,它抛出NetworkOnMainThreadException.根据SDK参考,仅针对Honeycomb SDK或更高版本的应用程序进行此操作.针对早期SDK版本的应用程序可以在其主要事件循环线程上进行联网.
在第一阶段,我只想运行程序,而不更改源.所以,我改变了AndroidManifesr.xml中的行:
android:targetSdkVersion="15"
至:
android:targetSdkVersion="10"
但是,这没有用,程序仍然会抛出NetworkOnMainThreadException.我怎样才能使这个工作?我正在尝试在Android Emulation Google API上执行该程序(级别16).
所以我有一个包含大量代码的项目,其中一些是在GitHub上托管的开源项目的一部分,我正在考虑删除该代码并使用CocoaPods为我导入和管理该代码.
我的问题是,这对项目建设时间有帮助吗?我每次构建项目时Xcode都会构建完整的工作区吗?
特别是当Xcode构建pod时?
我们刚刚开始一个新项目
并且似乎butterknife和数据绑定都是减少样板代码的绝佳工具.
我们从butterkife开始并稍后添加数据绑定,其想法是在java中没有viewmodel类而是在xml中表达它们.
有没有理由保持奶油蛋糕?
我在AsynkTask中编写了网络操作代码时得到了android.os.NetworkOnMainThreadException.抛出这个例外有什么其他原因吗?
这是我的代码:
public class Background_confirmation extends AsyncTask<Void, Integer, Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
progressDialog = ProgressDialog.show(Confirmation.this,
"Please wait...", "Retrieving data ...", true);
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"http://68.121.167.160/sip_chat_api/create_account.php?useralias="
+ useralias + "&cntname=" + cntcode + "");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
e.printStackTrace();
}
if (backgroung_flag == 1) {
} else {
if (is != null) …
Run Code Online (Sandbox Code Playgroud) 在Android上尝试我的全新服务之后我得到了这个:
我猜是与清单文件和权限相关的东西,服务在最后一个活动之后启动,更新服务器上的数据并检索新数据并在android上的sqlite上保存id:
这里还有清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ggservice.democracy"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.ggservice.democracy.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="@string/app_name" android:name="com.ggservice.democracy.sondaggioActivity"/>
<activity android:label="@string/app_name" android:name="com.ggservice.democracy.domandeDiCategoria"/>
<service android:name="com.ggservice.democracy.updateDemocracyService" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
logcat:
01-02 15:33:30.960: W/dalvikvm(2570): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
01-02 15:33:31.160: E/AndroidRuntime(2570): FATAL EXCEPTION: main
01-02 15:33:31.160: E/AndroidRuntime(2570): java.lang.RuntimeException: Unable to start service com.ggservice.democracy.updateDemocracyService@412f0c60 with Intent { cmp=com.ggservice.democracy/.updateDemocracyService }: android.os.NetworkOnMainThreadException
01-02 15:33:31.160: E/AndroidRuntime(2570): …
Run Code Online (Sandbox Code Playgroud) android ×8
onstart ×2
asynchronous ×1
butterknife ×1
cocoa-touch ×1
cocoapods ×1
data-binding ×1
ios ×1
logcat ×1
networking ×1
service ×1
xcode ×1
xcode6 ×1