HTML Source

S

Splitiii

Neues Mitglied
0
hi leute habe alles versucht aber sobald ich den sorce downloaden will startet die app nicht mehr evtl binde ich etwas falsch ein ... könnt ihr mir helfen?

siehe sourcecode func gethtmlsource habe bereits alles mir mögliche versucht.

prem internet ist in der manifest gesetzt

PHP:
package bahn.my;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;


public class AndroidautocompleteActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, wort);
        textView.setAdapter(adapter);

        String test = this.gethtmlsource("http:www.somewebsite.com/test.php");
        this.add(test);
    }
        

    public static ArrayList <String> wort = new ArrayList<String>();
    
    
    public void add(String wert){
    wort.add(wert);
    }
    
    public String gethtmlsource(String url){
        //dont know how -.- PLZ HELP
        String sourcecode = url;
        return sourcecode;    
    }
    

    

}
 
dev.android.com

Selbstinitiative ist gefragt.
 
müßte man nur mal paar threads weiter unten schauen ...
 
danke für den hinweis aber den Thread habe ich auch bereits geslesen und es nicht hinbekommen ... ich zeige euch mal kurz meinen code:

PHP:
package bahn.my;

import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;


public class AndroidautocompleteActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, wort);
        textView.setAdapter(adapter);

        this.gethtmlsource("http:www.somewebsite.com/test.php");
    }
        

    public static ArrayList <String> wort = new ArrayList<String>();
    
    
    public void add(String wert){
    wort.add(wert);
    }
    
    public void gethtmlsource(String uri){
        String quellcode = null;
        URL url = null;
        try {
        url = new URL(uri);
        String readLine = null;
        String sResult = null;
        BufferedReader buffReader = new BufferedReader (new InputStreamReader (url.openStream ()));
        while ((readLine = buffReader.readLine ()) != null) {
        if (sResult == null) {
        sResult = readLine;
        }
        else {
        sResult = sResult + readLine;
        }
        }
        quellcode = sResult;
        }
        catch (MalformedURLException me) {
        me.printStackTrace();
        }
        catch (IOException ioe) {
        ioe.printStackTrace();
        }
        add(quellcode);
    }

}
wenn ich das jedoch ausführe bekommme ich in der virtuellen maschine eine fehlermeldung "Unfortunately Androidautocomplete has stopped"

hier der log:
Code:
02-01 11:31:28.584: D/AndroidRuntime(541): Shutting down VM
02-01 11:31:28.584: W/dalvikvm(541): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
02-01 11:31:28.604: E/AndroidRuntime(541): FATAL EXCEPTION: main
02-01 11:31:28.604: E/AndroidRuntime(541): java.lang.RuntimeException: Unable to start activity ComponentInfo{bahn.my/bahn.my.AndroidautocompleteActivity}: java.lang.NullPointerException
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.os.Looper.loop(Looper.java:137)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.ActivityThread.main(ActivityThread.java:4424)
02-01 11:31:28.604: E/AndroidRuntime(541):     at java.lang.reflect.Method.invokeNative(Native Method)
02-01 11:31:28.604: E/AndroidRuntime(541):     at java.lang.reflect.Method.invoke(Method.java:511)
02-01 11:31:28.604: E/AndroidRuntime(541):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-01 11:31:28.604: E/AndroidRuntime(541):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-01 11:31:28.604: E/AndroidRuntime(541):     at dalvik.system.NativeStart.main(Native Method)
02-01 11:31:28.604: E/AndroidRuntime(541): Caused by: java.lang.NullPointerException
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpConnection$Address.hashCode(HttpConnection.java:343)
02-01 11:31:28.604: E/AndroidRuntime(541):     at java.util.HashMap.get(HashMap.java:298)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:67)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
02-01 11:31:28.604: E/AndroidRuntime(541):     at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
02-01 11:31:28.604: E/AndroidRuntime(541):     at java.net.URL.openStream(URL.java:462)
02-01 11:31:28.604: E/AndroidRuntime(541):     at bahn.my.AndroidautocompleteActivity.gethtmlsource(AndroidautocompleteActivity.java:45)
02-01 11:31:28.604: E/AndroidRuntime(541):     at bahn.my.AndroidautocompleteActivity.onCreate(AndroidautocompleteActivity.java:27)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.Activity.performCreate(Activity.java:4465)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-01 11:31:28.604: E/AndroidRuntime(541):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
02-01 11:31:28.604: E/AndroidRuntime(541):     ... 11 more

werde daraus leider nicht schlau ... evtl kann mir einer von euch jetzt einen richtigen denkanstoß geben
 
also eigentlich müßte dein link mit http:// anfangen und nicht nur http:

aber evtl. wird das intern noch richtig aufgelöst. hast du die internet-permission gesetzt?
 
ansich ja .... hoffe richtig. http:: war ein fehler meinerseits beim abtippen .. aber http:// ändert da leider nix dran

Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="bahn.my"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".AndroidautocompleteActivity"
            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>
 
debug halt mal rein und schau dir mal die stelle url = new URL(uri) an, ob da null zurückkommt. dann stimmt was mit deinem url-string nicht.
 
Ein kurzer Einwurf:
Du verwendest als minimale Vorraussetzung API-Level 15.
Ist nicht seit API-Level 11 Vorraussetzung für eine Netzwerkverbindung, dass diese in einem eigenem Thread stattfinden muss?

Dann würdest du aber eine "NetworkOnMainThreadException" bekommen.
Evtl. hat sich das ja in deinem Log verändert, indem du die fehlenden // hinzugefügt hast und hast es übersehen...

Vielleicht hat auch einfach nur dein Emulator Probleme aufs Internet zuzugreifen.
 
Warum liest denn keiner die API? Android hat mit den Packeten unter org.apache.http einen HttpClient an Board. Einfach so auf einer URL eine Verbindung aufbauen wird halt nicht so gehen.
 
TheDarkRose schrieb:
Warum liest denn keiner die API? Android hat mit den Packeten unter org.apache.http einen HttpClient an Board. Einfach so auf einer URL eine Verbindung aufbauen wird halt nicht so gehen.

Natürlich geht das.

Afaik muss man es wie folgt machen. Rein aus dem Kopf:

Code:
URL url = new URL("http://www.google.de");
UrlConnection conn = url.openConnection();
InputStream is = conn.getInputStream();

Interessant wäre zu wissen welche Stelle das hier ist:
AndroidautocompleteActivity.java:45
 
the_alien schrieb:
Natürlich geht das.
Interessant wäre zu wissen welche Stelle das hier ist:
AndroidautocompleteActivity.java:45

Da das nach einer komplett kopierten Datei aussieht, das hier:
Code:
[COLOR=#000000][COLOR=#0000BB]BufferedReader buffReader [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]BufferedReader [/COLOR][COLOR=#007700](new [/COLOR][COLOR=#0000BB]InputStreamReader [/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]url[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]openStream [/COLOR][COLOR=#007700]()));[/COLOR][/COLOR]
 
Warum apache-tools benutzen wenn es doch schon in Java mitgeliefert wird? also url.openStream() benutz ich in 2 Apps ohne Probleme, allerdings lese ich keine html-seite sondern csv-dateien. Aber ob das ein Unterschied macht? ;-)
 

Ähnliche Themen

M
Antworten
2
Aufrufe
631
Mozart40
M
K
Antworten
5
Aufrufe
1.535
jogimuc
J
S
Antworten
9
Aufrufe
1.481
jogimuc
J
Zurück
Oben Unten