试图创建简单的Android应用程序来启动一个网站

时间:2014-03-14 15:39:35

标签: android

为了帮助爱达荷州立大学的新生找到建筑物,教室等,我们创建了一个在Android或iOS上运行良好的网络地图。

网络地图有一个非常长的网址,所以我们做了一个bit.ly链接到它以及一个QR码。 可以在http://bit.ly/isumap

查看网络地图

我现在收到创建应用程序(从Android开始)的请求,可以由学生(以及教职员工和访问者)下载和安装。该应用程序只会在移动设备上为它们启动Web地图。因此,他们不需要记住URL或进行任何输入。

我已经安装了Android SDK(使用Eclipse),我确信它运行正常。到目前为止,我已经使用stackOverflow来帮助我,但现在已经卡住了。虽然应用程序的运行,我得到这个错误"不幸的是,gISU已经停止"。但它确实没有停止...... URL正确启动。我怎么能解决这个问题所以我没有得到这个错误?换句话说,我如何让Android成功处理此事件。

代码非常简单: MainActivity.Java     包com.example.gisumap;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
//import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    String url = "http://isu.maps.arcgis.com/apps/Solutions/s2.html?   appid=8f29d302702249069af69eb5da6f1299&ex=-12517238,5290414,-12514181,5292459,102100";
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);
    finish();
    moveTaskToBack(true);
}

}

这是清单          

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.gisumap.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>
    </application>

</manifest>

我已经编辑了清单以包含一个用于INTERNET。

这里也是LogCat     03-14 13:56:14.470:D / AndroidRuntime(986):关闭VM     03-14 13:56:14.470:W / dalvikvm(986):threadid = 1:线程退出未捕获异常(组= 0xb3ac3b90)     03-14 13:56:14.480:E / AndroidRuntime(986):致命异常:主要     03-14 13:56:14.480:E / AndroidRuntime(986):进程:com.example.gisumap,PID:986     03-14 13:56:14.480:E / AndroidRuntime(986):android.util.SuperNotCalledException:Activity {com.example.gisumap / com.example.gisumap.MainActivity}没有调用super.onCreate()     03-14 13:56:14.480:E / AndroidRuntime(986):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2142)     03-14 13:56:14.480:E / AndroidRuntime(986):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)     03-14 13:56:14.480:E / AndroidRuntime(986):在android.app.ActivityThread.access $ 700(ActivityThread.java:135)     03-14 13:56:14.480:E / AndroidRuntime(986):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1397)     03-14 13:56:14.480:E / AndroidRuntime(986):在android.os.Handler.dispatchMessage(Handler.java:102)     03-14 13:56:14.480:E / AndroidRuntime(986):在android.os.Looper.loop(Looper.java:137)     03-14 13:56:14.480:E / AndroidRuntime(986):在android.app.ActivityThread.main(ActivityThread.java:4998)     03-14 13:56:14.480:E / AndroidRuntime(986):at java.lang.reflect.Method.invokeNative(Native Method)     03-14 13:56:14.480:E / AndroidRuntime(986):at java.lang.reflect.Method.invoke(Method.java:515)     03-14 13:56:14.480:E / AndroidRuntime(986):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:777)     03-14 13:56:14.480:E / AndroidRuntime(986):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)     03-14 13:56:14.480:E / AndroidRuntime(986):at dalvik.system.NativeStart.main(Native Method)     03-14 13:56:45.087:I / Process(986):发送信号。 PID:986 SIG:9

谢谢大家。

哇!干得好,也很棒。对于其他人来说,为了完成这项工作,我遵循知识渊博的海报的建议。

使用我首先发布的代码:

删除了行&#34; moveTaskToBack(true);&#34;来自MainActivity 在清单中添加了一行:                                                             最后,(紧要关头) 在SuperA的MainActivity中添加了一行:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

现在有效!万分感谢。

2 个答案:

答案 0 :(得分:1)

你忘了打电话给super.onCreate!加上这个:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); //add this line

请参阅documentation

  

派生类必须调用超类的此方法的实现。如果他们不这样做,将抛出异常。

==&GT;这就是你的logcat在这里抱怨的:

android.util.SuperNotCalledException: Activity {com.example.gisumap/com.example.gisumap.MainActivity} 
did not call through to super.onCreate() 

答案 1 :(得分:0)

您需要在AndroidManifest文件中添加互联网权限才能实现此功能,我还建议您在某个时候使用网页视图加载网址!