HTML Source

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Splitiii, 01.02.2012.

  1. Splitiii, 01.02.2012 #1
    Splitiii

    Splitiii Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    11.01.2012
    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 = (AutoCompleteTextViewfindViewById(R.id.autocomplete_country);
            
    ArrayAdapter<Stringadapter = new ArrayAdapter<String>(thisR.layout.list_itemwort);
            
    textView.setAdapter(adapter);

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

        public static 
    ArrayList <Stringwort = 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;    
        }
        

        

    }
     
  2. TheDarkRose, 01.02.2012 #2
    TheDarkRose

    TheDarkRose Gewerbliches Mitglied

    Beiträge:
    1,292
    Erhaltene Danke:
    136
    Registriert seit:
    20.08.2010
    dev.android.com

    Selbstinitiative ist gefragt.
     
  3. Tom299, 01.02.2012 #3
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    müßte man nur mal paar threads weiter unten schauen ...
     
  4. Splitiii, 01.02.2012 #4
    Splitiii

    Splitiii Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    11.01.2012
    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 = (AutoCompleteTextViewfindViewById(R.id.autocomplete_country);
            
    ArrayAdapter<Stringadapter = new ArrayAdapter<String>(thisR.layout.list_itemwort);
            
    textView.setAdapter(adapter);

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

        public static 
    ArrayList <Stringwort = 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
     
  5. Tom299, 01.02.2012 #5
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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?
     
  6. Splitiii, 01.02.2012 #6
    Splitiii

    Splitiii Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    11.01.2012
    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>
    
     
  7. Tom299, 01.02.2012 #7
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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.
     
  8. Son Goku, 01.02.2012 #8
    Son Goku

    Son Goku Android-Hilfe.de Mitglied

    Beiträge:
    55
    Erhaltene Danke:
    5
    Registriert seit:
    07.12.2010
    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.
     
  9. TheDarkRose, 01.02.2012 #9
    TheDarkRose

    TheDarkRose Gewerbliches Mitglied

    Beiträge:
    1,292
    Erhaltene Danke:
    136
    Registriert seit:
    20.08.2010
    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.
     
  10. the_alien, 01.02.2012 #10
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    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
     
  11. Son Goku, 01.02.2012 #11
    Son Goku

    Son Goku Android-Hilfe.de Mitglied

    Beiträge:
    55
    Erhaltene Danke:
    5
    Registriert seit:
    07.12.2010
    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]
     
  12. Tom299, 01.02.2012 #12
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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? ;-)
     

Diese Seite empfehlen