- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我开发了这个应用程序来访问设备上的谷歌地图。之后,它读取设备上可见屏幕的角坐标(左上角和右下角),并将值存储在变量 xmin xmax ymin 和 ymax 中。现在这些值被传递给网络服务,
http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx/GetSeriesCatalogForBox2
与代码中提到的其他参数一起获取需要在该区域绘制的注释的坐标。
现在是硬编码值,例如,
xmin= -100
ymin= -99
xmax= 40
ymax= 41
程序工作正常,输出是一个已解析的 xml,并绘制了注释,但是当我尝试使用 map 上可见的角坐标时,其值为,
40338927
-99388178
40347297
-99399164
网络服务没有返回。这会使应用程序崩溃。我不想让它崩溃,但没有绘制出任何表明该区域内没有车站的信息。我怎样才能做到这一点。
请帮忙,
提前致谢
代码:
AndroidTestActivity.java
public class AndroidTestActivity extends MapActivity
{
/** Called when the activity is first created. */
ArrayList<String> arrlat_long = new ArrayList<String>();
ArrayList<String> arrlat_lat = new ArrayList<String>();
ArrayList<String> d = new ArrayList<String>();
private static final String ACTION_RECV_MSG = "com.imrankhanandroid.intent.action.RECEIVE_MESSAGE";
private static final String ACTION_OTHER_MSG = "com.imrankhanandroid.intent.action.OTHER_MESSAGE";
MapView mapView;
private MessageReceiver receiver ;
private MapController mapController;
double topLat;
double topLon;
double bottomLat;
double bottomLon;
String strtest,strtest1,strtest2,strtest3;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
mapController.setZoom(8);
Projection proj = mapView.getProjection();
GeoPoint topLeft = proj.fromPixels(0, 0);
GeoPoint bottomRight = proj.fromPixels(mapView.getWidth()-1, mapView.getHeight()-1);
topLat = topLeft.getLatitudeE6()/1E6;
topLon = topLeft.getLongitudeE6()/1E6;
bottomLat = bottomRight.getLatitudeE6()/1E6;
bottomLon = bottomRight.getLongitudeE6()/1E6;
int n= ((int) (topLat*1E6));
int n1= ((int) (topLon*1E6));
int n2= ((int) (bottomLat*1E6));
int n3= ((int) (bottomLon*1E6));
strtest=Integer.toString(n)+"/"+Integer.toString(n1)+"/"+Integer.toString(n2)+"/"+Integer.toString(n3);
Log.d("strtest strtest", "strtest strtest = "+strtest);
Intent msgIntent = new Intent(AndroidTestActivity.this,Intentservice.class);
msgIntent.putExtra("strtest", strtest); //arrlat_long
startService(msgIntent);
//Dynamic registration Receiver
IntentFilter filter = new IntentFilter(ACTION_RECV_MSG);
filter.addCategory(Intent.CATEGORY_DEFAULT);
receiver = new MessageReceiver();
registerReceiver(receiver, filter);
IntentFilter filter2 = new IntentFilter(ACTION_OTHER_MSG);
filter2.addCategory(Intent.CATEGORY_DEFAULT);
receiver = new MessageReceiver();
registerReceiver(receiver, filter2);
}
//Broadcast to receive
public class MessageReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
arrlat_long = intent.getStringArrayListExtra("codnt");
arrlat_lat = intent.getStringArrayListExtra("codntlat");
// text.setText(message);
Toast.makeText(context, arrlat_long.get(0),Toast.LENGTH_SHORT).show();
testoverlay();
}
}
public void testoverlay()
{
for(int i=0;i<arrlat_long.size();i++)
{
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.mapmarker);
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
float lat = Float.parseFloat(arrlat_lat.get(i));
float lng = Float.parseFloat(arrlat_long.get(i));
GeoPoint point = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));
OverlayItem overlayitem = new OverlayItem(point, "", "");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
HelloItemizedOverlay.java
public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
public HelloItemizedOverlay(Drawable defaultMarker, Context context)
{
super(boundCenterBottom(defaultMarker));
mContext = context;
}
public void addOverlay(OverlayItem overlay)
{
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i)
{
return mOverlays.get(i);
}
@Override
public int size()
{
return mOverlays.size();
}
@Override
protected boolean onTap(int index)
{
return true;
}
}
IntentService.java
public class Intentservice extends IntentService
{
private static final String ACTION_RECV_MSG = "com.imrankhanandroid.intent.action.RECEIVE_MESSAGE";
private static final String ACTION_OTHER_MSG = "com.imrankhanandroid.intent.action.OTHER_MESSAGE";
ArrayList<String> arrlat_long = new ArrayList<String>();
ArrayList<String> arrlat_lat = new ArrayList<String>();
public static String str="";
public static String str1="";
int n=0;
String responseBody;
Integer topLat=0;
Integer topLon=0;
Integer bottomLat=0;
Integer bottomLon=0;
ArrayList<String> a= new ArrayList<String>();
ArrayList<String> b= new ArrayList<String>();
ArrayList<String> c= new ArrayList<String>();
ArrayList<String> d= new ArrayList<String>();
MapView mapView;
private MessageReceiver receiver;
public Intentservice()
{
super("Intentservice");
// TODO Auto-generated constructor stub
}
@Override
protected void onHandleIntent(Intent intent)
{
String strxmin,xmax,ymin,ymax;
String str=intent.getExtras().getString("strtest");
Log.d("onHandleIntent", "onHandleIntent onHandleIntent= "+str);
String[] arrtelog=str.split("/");
strxmin=arrtelog[0];
xmax=arrtelog[1];
ymin=arrtelog[2];
ymax=arrtelog[3];
// strxmin=str;
// xmax=str1;
// ymin=str2;
// ymax=str3;
// TODO Auto-generated method stub
HttpClient httpclient = new DefaultHttpClient();
String Url = "http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx/GetSeriesCatalogForBox2";
if(!Url.endsWith("?"))
{
Url += "?";
}
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);
nameValuePairs.add(new BasicNameValuePair("xmin",xmax));
nameValuePairs.add(new BasicNameValuePair("xmax", ymax));
nameValuePairs.add(new BasicNameValuePair("ymin", "40"));
nameValuePairs.add(new BasicNameValuePair("ymax", "41"));
nameValuePairs.add(new BasicNameValuePair("networkIDs", ""));
nameValuePairs.add(new BasicNameValuePair("conceptKeyword", "precipitation"));
nameValuePairs.add(new BasicNameValuePair("beginDate", "1/1/2009"));
nameValuePairs.add(new BasicNameValuePair("endDate", "1/1/2010"));
String paramString = URLEncodedUtils.format(nameValuePairs, "utf-8");
Url += paramString;
try
{
HttpPost httppost = new HttpPost(Url);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
responseBody = EntityUtils.toString(response.getEntity());
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setValidating(false);
XmlPullParser myxml = factory.newPullParser();
InputStream raw = new ByteArrayInputStream(responseBody.getBytes());
myxml.setInput(raw, null);
int eventType = myxml.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT)
{
if(eventType == XmlPullParser.START_DOCUMENT)
{
Log.d("ParseXmlActivity", "In start document");
}
else if(eventType == XmlPullParser.START_TAG)
{
if (myxml.getName().equals("latitude"))
{
str="";
str = myxml.nextText().toString();
Log.d("ParseXmlActivity", "In start tag = "+str);
arrlat_lat.add(str);
}
if (myxml.getName().equals("longitude"))
{
str = myxml.nextText().toString();
Log.d("ParseXmlActivity", "In start tag = "+str);
arrlat_long.add(str);
}
}
eventType = myxml.next();
} }
catch (XmlPullParserException e)
{
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
IntentFilter filter = new IntentFilter(ACTION_RECV_MSG);
filter.addCategory(Intent.CATEGORY_DEFAULT);
receiver = new MessageReceiver();
registerReceiver(receiver, filter);
Log.d("TEST TESTTEST", "In start TESTTEST = "+arrlat_long.get(0)+" $$$ "+arrlat_long.size());
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(ACTION_RECV_MSG);
broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
broadcastIntent.putStringArrayListExtra("codnt", arrlat_long); //arrlat_long
broadcastIntent.putStringArrayListExtra("codntlat", arrlat_lat); //arrlat_lat
sendBroadcast(broadcastIntent);
}
日志猫是,
06-29 18:37:18.786: W/dalvikvm(1344): threadid=12: thread exiting with uncaught exception (group=0x409c01f8)
06-29 18:37:18.796: E/AndroidRuntime(1344): FATAL EXCEPTION: IntentService[Intentservice]
06-29 18:37:18.796: E/AndroidRuntime(1344): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
06-29 18:37:18.796: E/AndroidRuntime(1344): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
06-29 18:37:18.796: E/AndroidRuntime(1344): at java.util.ArrayList.get(ArrayList.java:304)
06-29 18:37:18.796: E/AndroidRuntime(1344): at com.imrankhanandroid.Androidtest.Intentservice.onHandleIntent(Intentservice.java:157)
06-29 18:37:18.796: E/AndroidRuntime(1344): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
06-29 18:37:18.796: E/AndroidRuntime(1344): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 18:37:18.796: E/AndroidRuntime(1344): at android.os.Looper.loop(Looper.java:137)
06-29 18:37:18.796: E/AndroidRuntime(1344): at android.os.HandlerThread.run(HandlerThread.java:60)
06-29 18:37:19.086: D/dalvikvm(1344): GC_CONCURRENT freed 168K, 3% free 10132K/10375K, paused 4ms+4ms
06-29 18:37:20.527: E/ActivityThread(1344): Activity com.imrankhanandroid.Androidtest.AndroidTestActivity has leaked IntentReceiver com.imrankhanandroid.Androidtest.AndroidTestActivity$MessageReceiver@412bf4a0 that was originally registered here. Are you missing a call to unregisterReceiver()?
06-29 18:37:20.527: E/ActivityThread(1344): android.app.IntentReceiverLeaked: Activity com.imrankhanandroid.Androidtest.AndroidTestActivity has leaked IntentReceiver com.imrankhanandroid.Androidtest.AndroidTestActivity$MessageReceiver@412bf4a0 that was originally registered here. Are you missing a call to unregisterReceiver()?
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:763)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:567)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1043)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1030)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1024)
06-29 18:37:20.527: E/ActivityThread(1344): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:341)
06-29 18:37:20.527: E/ActivityThread(1344): at com.imrankhanandroid.Androidtest.AndroidTestActivity.onCreate(AndroidTestActivity.java:81)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.Activity.performCreate(Activity.java:4465)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ActivityThread.access$600(ActivityThread.java:123)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-29 18:37:20.527: E/ActivityThread(1344): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 18:37:20.527: E/ActivityThread(1344): at android.os.Looper.loop(Looper.java:137)
06-29 18:37:20.527: E/ActivityThread(1344): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-29 18:37:20.527: E/ActivityThread(1344): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 18:37:20.527: E/ActivityThread(1344): at java.lang.reflect.Method.invoke(Method.java:511)
06-29 18:37:20.527: E/ActivityThread(1344): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 18:37:20.527: E/ActivityThread(1344): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 18:37:20.527: E/ActivityThread(1344): at dalvik.system.NativeStart.main(Native Method)
06-29 18:37:20.557: E/ActivityThread(1344): Activity com.imrankhanandroid.Androidtest.AndroidTestActivity has leaked IntentReceiver com.imrankhanandroid.Androidtest.AndroidTestActivity$MessageReceiver@412d2f88 that was originally registered here. Are you missing a call to unregisterReceiver()?
06-29 18:37:20.557: E/ActivityThread(1344): android.app.IntentReceiverLeaked: Activity com.imrankhanandroid.Androidtest.AndroidTestActivity has leaked IntentReceiver com.imrankhanandroid.Androidtest.AndroidTestActivity$MessageReceiver@412d2f88 that was originally registered here. Are you missing a call to unregisterReceiver()?
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:763)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:567)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1043)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1030)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1024)
06-29 18:37:20.557: E/ActivityThread(1344): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:341)
06-29 18:37:20.557: E/ActivityThread(1344): at com.imrankhanandroid.Androidtest.AndroidTestActivity.onCreate(AndroidTestActivity.java:85)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.Activity.performCreate(Activity.java:4465)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ActivityThread.access$600(ActivityThread.java:123)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-29 18:37:20.557: E/ActivityThread(1344): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 18:37:20.557: E/ActivityThread(1344): at android.os.Looper.loop(Looper.java:137)
06-29 18:37:20.557: E/ActivityThread(1344): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-29 18:37:20.557: E/ActivityThread(1344): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 18:37:20.557: E/ActivityThread(1344): at java.lang.reflect.Method.invoke(Method.java:511)
06-29 18:37:20.557: E/ActivityThread(1344): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 18:37:20.557: E/ActivityThread(1344): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 18:37:20.557: E/ActivityThread(1344): at dalvik.system.NativeStart.main(Native Method)
最佳答案
作为您的 logcat 行:
at com.imrankhanandroid.Androidtest.Intentservice.onHandleIntent(Intentservice.java:157)
06-29 18:37:18.796: E/AndroidRuntime(1344): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
意味着问题出在IntentService的onHandleIntent中:
Override
protected void onHandleIntent(Intent intent)
{
String strxmin,xmax,ymin,ymax;
String str=intent.getExtras().getString("strtest");
Log.d("onHandleIntent", "onHandleIntent onHandleIntent= "+str);
String[] arrtelog=str.split("/");
if(arrtelog.length >=3)
{
strxmin=arrtelog[0];
xmax=arrtelog[1];
ymin=arrtelog[2];
ymax=arrtelog[3];
}
else{
//your code here if array length is 0
}
关于android - 应用程序崩溃 - Web 服务没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266775/
我有一段代码看起来像这样: void update_clock(uint8_t *time_array) { time_t time = *((time_t *) &time_array[0]
应用程序崩溃了 :( 请帮助我.. 在这方面失败了。我找不到错误?该应用程序可以连接到 iTunesConnect 但它会出错。 谁能根据下面的崩溃报告判断问题出在哪里? share_with_app
小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,这下可把我气坏了,就
我正在创建一个函数,它将目录路径作为参数传递,或者如果它留空,则提示用户输入。 我已经设置了我的 PATH_MAX=100 和 if 语句来检查 if ((strlen(folder path) +
我已将“arial.ttf”文件(从我的/Windows/Fonts 文件夹中获取)加载到内存中,但是将其传递到 FT_New_Memory_Face 时会崩溃(在 FT_Open_Face 中的某处
我正在尝试在我的计算机上的两个控制台之间进行 rtsp 流。 在控制台 1 上,我有: ffmpeg -rtbufsize 100M -re -f dshow -s 320x240 -i video=
我正在尝试使用 scio_beast在一个项目中。我知道它还没有完成,但这并不重要。我已经设法让它工作得很好。 我现在正在尝试连接到 CloudFlare 后面的服务器,我知道我需要 SNI 才能工作
我有一个带有关联宏的下拉列表,如下所示: Sub Drop() If Range("Hidden1!A1") = "1" Then Sheets("Sheet1").Se
我对 bash 很陌生。我要做的就是运行这个nvvp -vm /usr/lib64/jvm/jre-1.8.0/bin/java无需记住最后的路径。我认为 instafix 就是这样做...... n
我在 Windows 上使用 XAMPP 已经两年左右了,它运行完美,没有崩溃没有问题。 (直到四个月前。) 大约四个月前,我们将服务器/系统升级到了更快的规范。 这是旧规范的内容 - Windows
我面临着一个非常烦人的 android 崩溃,它发生在大约 1% 的 PRODUCTION session 中,应用程序始终在后台运行。 Fatal Exception: android.app.Re
尝试使用下面的函数: public void createObjectType() { try { mCloudDB.createObjectType(ObjectTypeIn
由于我正在进行的一个项目,我在 CF11 管理员中弄乱了类路径,我设法使服务器崩溃,以至于我唯一得到的是一个漂亮的蓝屏和 500 错误.我已经检查了日志,我会把我能做的贴在帖子的底部,但我希望有人会启
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 10 个月前关闭。 Improve
我最近从 xcode 3.x 更新到 4.2,当我在 4.2 中运行应用程序时,我遇到了核心数据问题。我还更新到了 iOS 5,所以问题可能就在那里,我不太确定。 这些应用程序在 3.x 中运行良好,
我是一个相对较新的 iPhone 应用程序开发人员,所以我的知识有点粗略,所以如果这是一个微不足道的问题,请原谅我。 我有一个导航应用程序,它通过在navigationController对象上调用p
if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailViewController
你能帮我吗? 我正在设置 UILocalNotification,当我尝试设置其 userInfo 字典时,它崩溃了。 fetchedObjects 包含 88 个对象。 这是代码: NSDi
为什么我的代码中突然出现 NSFastEnumeration Mutation Handler 崩溃。我很茫然为什么会突然出现这个崩溃以及如何解决它。 最佳答案 崩溃错误: **** 由于未捕获的异常
当我从表中删除行时,我的应用程序崩溃了。这是我检测到错误和堆栈跟踪的来源。谢谢! //delete row from database - (void)tableView:(UITableView *
我是一名优秀的程序员,十分优秀!