-1

ビルドした Android アプリ用の最初のライブラリを作成しました (将来、さまざまなアプリで再利用する必要があるコードがあります)。ライブラリからメイン プロジェクトにあるメソッドを開始する必要があります。次の行を使用してそうしようとします:

com.project.sample.datasettings.UpdateActivity.success();

次のようなコンパイラ エラーが表示されます。

com.project.sample.UpdateActivity Cannot Be Resolved To A Type

ソース:

package com.project.sample.networktasklibrary;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.zip.GZIPInputStream;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLException;
import com.project.sample.networktasklibrary.XmlParserHandlerFinal;
import com.project.sample*;

import org.xml.sax.SAXException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;

// このクラスは、バックグラウンドで webservice への呼び出しを実行します

public class NetworkTask extends AsyncTask<String, String, InputStream> {
    private static final String LOG_TAG = "STDataSettings";
    private static final String TAG_RESULT = "success";
    private static InputStream stream;

    @Override
    protected InputStream doInBackground(String... params) {

        try {
            stream = getQueryResults("https://dl.dropboxusercontent.com/u/31771876/GetPhoneSettings-ST-rsp-eng.xml");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return stream;
    }

    /*
     * Sends a query to server and gets back the parsed results in a bundle
     * urlQueryString - URL for calling the webservice
     */
    protected static synchronized InputStream getQueryResults(
            String urlQueryString) throws IOException, SAXException,
            SSLException, SocketTimeoutException, Exception {
        Bundle queryResults = new Bundle();

        HttpsURLConnection https = null;
        String uri = urlQueryString;
        URL urlo = new URL(uri);

        https = (HttpsURLConnection) urlo.openConnection();
        https.setConnectTimeout(50000); // 20 second timeout
        https.setRequestProperty("Connection", "Keep-Alive");
        try {
            https = (HttpsURLConnection) urlo.openConnection();

            if ("gzip".equals(https.getContentEncoding())) {
                stream = new GZIPInputStream(stream);
            } else
                stream = https.getInputStream();

        } catch (SSLException e) {
            Log.e(LOG_TAG, e.toString());
            e.printStackTrace();

        } catch (SocketTimeoutException e) {
            Log.e(LOG_TAG, e.toString());
            e.printStackTrace();
        } catch (IOException e) {
            Log.e(LOG_TAG, e.toString());
            e.printStackTrace();

        } catch (Exception e) {
            Log.e(LOG_TAG, e.toString());
            e.printStackTrace();

        } finally {

        }

        String queryResult = null;
        queryResults.putString(TAG_RESULT, queryResult);

        return stream;
    }

    public InputStream getInputStream() {
        return stream;
    }

    protected void onPostExecute(InputStream queryResults) {
        // TODO Auto-generated method stub
        super.onPostExecute(queryResults);
        com.project.sample.datasettings.UpdateActivity.success();
    }
}

アップデート アクティビティ コードのサンプル:

public void success() {

        // to parse the response
        try {
            handler.getQueryResponse(stream);

        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // to set method to save the ArryaLists from the parser
        setArrayList();
        Intent i = new Intent(this, ConfigFinalActivity.class);
        startActivity(i);

    }
4

1 に答える 1

0

ライブラリをメイン プロジェクトに追加しようとしたことがありますか? プロジェクト名を右クリック -> プロパティ -> Android -> 追加。次に、ライブラリ プロジェクトを選択します。

于 2013-08-27T14:59:19.170 に答える