无法在Android Studio中构建应用

时间:2015-08-08 18:06:46

标签: java android android-studio

我最近开始使用Android工作室。我正在通过教程学习,我做了一个下载原始数据的闪烁应用程序的一部分。当我尝试运行它时,我在“消息”选项卡中收到此错误:

  

错误:配置项目':app'时出现问题。   无法解析配置':app:_debugCompile'的所有依赖项。   找不到com.android.support:appcompat-v7:22.+的任何匹配项,因为没有com.android.support:appcompat-v7版本可用。        在以下位置搜索:            https://jcenter.bintray.com/com/android/support/appcompat-v7/maven-metadata.xml            https://jcenter.bintray.com/com/android/support/appcompat-v7/        要求:            FlickrBrowser:应用程序:未指定的

控制台显示此错误:

  

执行任务:[:app:assembleDebug]

     

按需配置是一项孵化功能。

     

失败:构建因异常而失败。

           

建立失败

     

总时间:8.603秒

我的主要活动:

package org.example.flickrbrowser;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    GetRawData getRawData = new GetRawData("https://api.flickr.com/services/feeds/photos_public.gne?tags=android,lollipop&format=json");
    getRawData.execute();

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
   }
}

GetRawData.class:

 package org.example.flickrbrowser;

import android.os.AsyncTask;
import android.util.Log;

import org.apache.http.HttpConnection;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * Created by Shahbaz on 07/08/15.
 */

enum DownloadStatus {
IDLE, PROCESSING, NOT_INITIALISED, FAILED_OR_EMPTY, OK
};

public class GetRawData {

private String LOG_TAG = GetRawData.class.getSimpleName();
private String mData;
private String mGetRawUrl;
private DownloadStatus mDownloadStatus;

public GetRawData(String mGetRawData) {
    this.mGetRawUrl = mGetRawData;
    this.mDownloadStatus = DownloadStatus.IDLE;
}


public void reset() {
    this.mDownloadStatus = DownloadStatus.IDLE;
    this.mGetRawUrl = null;
    this.mData = null;
}


public String getmGetRawUrl() {
    return mGetRawUrl;
}

public DownloadStatus getmDownloadStatus() {
    return mDownloadStatus;
}

public void execute() {
    this.mDownloadStatus = DownloadStatus.PROCESSING;
    DownloadRawData downloadrawdata = new DownloadRawData();
    downloadrawdata.execute(mGetRawUrl);
}

public class DownloadRawData extends AsyncTask<String, Void, String> {

    public void onPostExecute(String webData) {
        mData = webData;
        Log.v(LOG_TAG, "data returned is:" + mData);
        if (mData == null) {
            if (mGetRawUrl == null) {
                mDownloadStatus = DownloadStatus.NOT_INITIALISED;
            } else {
                mDownloadStatus = DownloadStatus.FAILED_OR_EMPTY;
            }
        } else {
            mDownloadStatus = DownloadStatus.OK;
        }


    }

    public void doInBackgroud(String... params) {
        HttpURLConnection urlconnection = null;
        BufferedReader reader = null;
        if (params == null) {
            return null;
        }

        try {

            URL url = new URL(params[0]);
            urlconnection = (HttpURLConnection) url.openConnection();
            urlconnection.setRequestMethod("GET");
            urlconnection.connect();

            InputStream inputstream = urlconnection.getInputStream();
            if (inputstream == null) {
                return null;
            }
            StringBuffer buffer = new StringBuffer();
            reader = new BufferedReader(new InputStreamReader(inputstream));
            String line;

            while ((line = reader.readLine()) != null) {
                buffer.append(line + "\n");
            }
            return buffer.toString();


        } catch (IOException e) {
            Log.e(LOG_TAG, "Error", e);
            return null;
        } finally {
            if (urlconnection != null) {
                urlconnection.disconnect();
            }
            if (reader != null) {
                reader.close();
            }
        }


    }
}

}

3 个答案:

答案 0 :(得分:1)

您需要确保已在Android SDK中下载Android Support Repository

答案 1 :(得分:0)

请从Android SDK下载Android Support Repository。这就是你所缺少的。然后它应该建立良好的

答案 2 :(得分:0)

从您的Android Studio:

  

工具 - &gt; Android - &gt; SDK Manager

等待SDK管理器完全加载。然后选中Android Support Repository部分下的Extras选项,然后点击安装软件包下载并安装此软件包。