Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我一直在犯错误;“url”没有值;_Android - Fatal编程技术网

Android 我一直在犯错误;“url”没有值;

Android 我一直在犯错误;“url”没有值;,android,Android,这是我的java代码。在我的android studio中,我的url没有任何价值。我打算从wamp服务器上的sql数据库获取图像 public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private String imagesJSON; private static final String JSON_ARRAY ="result"; private static final

这是我的java代码。在我的android studio中,我的url没有任何价值。我打算从wamp服务器上的sql数据库获取图像

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener{
private String imagesJSON;

private static final String JSON_ARRAY ="result";
private static final String IMAGE_URL = "url";

private JSONArray arrayImages= null;

private int TRACK = 0;

private static final String IMAGES_URL = 
"http://192.168.43.214/apexStore2/image.php";

private Button buttonFetchImages;
private Button buttonMoveNext;
private Button buttonMovePrevious;
private ImageView imageView;


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

    imageView = (ImageView) findViewById(R.id.imageView);
    buttonFetchImages = (Button) findViewById(R.id.buttonFetchImages);
    buttonMoveNext = (Button) findViewById(R.id.buttonNext);
    buttonMovePrevious = (Button) findViewById(R.id.buttonPrev);
    buttonFetchImages.setOnClickListener(this);
    buttonMoveNext.setOnClickListener(this);
    buttonMovePrevious.setOnClickListener(this);
}


private void extractJSON(){
    try {

        JSONObject jsonObject = new JSONObject(imagesJSON);
        arrayImages = jsonObject.getJSONArray(JSON_ARRAY);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

private void showImage(){
    try {
        JSONObject jsonObject = arrayImages.getJSONObject(TRACK);
        getImage(jsonObject.getString(IMAGE_URL));
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

private void moveNext(){
    if(TRACK < arrayImages.length()){
        TRACK++;
        showImage();
    }
}

private void movePrevious(){
    if(TRACK>0){
        TRACK--;
        showImage();
    }
}



private void getAllImages() {
    class GetAllImages extends AsyncTask<String,Void,String>{
        ProgressDialog loading;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(MainActivity.this, "Fetching 
Data...","Please Wait...",true,true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();
            imagesJSON = s;
            extractJSON();
            showImage();
        }

        @Override
        protected String doInBackground(String... params) {
            String uri = params[0];
            BufferedReader bufferedReader = null;
            try {
                URL url = new URL(uri);
                HttpURLConnection con = (HttpURLConnection) 
 url.openConnection();
                con.setRequestProperty("Content-Type", 
 "application/json;charset=utf-8");
                con.setRequestProperty("X-Requested-With", 
 "XMLHttpRequest");
                StringBuilder sb = new StringBuilder();

                bufferedReader = new BufferedReader(new 
 InputStreamReader(con.getInputStream()));

                String json;
                while((json = bufferedReader.readLine())!= null){
                    sb.append(json+"\n");
                }

                return sb.toString().trim();

            }catch(Exception e){
                return null;
            }
        }
    }
    GetAllImages gai = new GetAllImages();
    gai.execute(IMAGES_URL);
}

private void getImage(String urlToImage){
    class GetImage extends AsyncTask<String,Void,Bitmap>{
        ProgressDialog loading;
        @Override
        protected Bitmap doInBackground(String... params) {
            URL url = null;
            Bitmap image = null;

            String urlToImage = params[4];
            try {
                url = new URL(urlToImage);
                image = 
  BitmapFactory.decodeStream(url.openConnection().getInputStream());
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return image;
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(MainActivity.this,"Downloading 
  Image...","Please wait...",true,true);
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            loading.dismiss();
            imageView.setImageBitmap(bitmap);
        }
    }
    GetImage gi = new GetImage();
    gi.execute(urlToImage);
}

@Override
public void onClick(View v) {
    if(v == buttonFetchImages) {
        getAllImages();
    }
    if(v == buttonMoveNext){
        moveNext();
    }
    if(v== buttonMovePrevious){
        movePrevious();
    }
}
我的php代码从sql数据库获取图像,但是,我的android studio无法获取图像。有什么解决办法吗

<?php 
include ('classes/functions.php');

 $check_product = "SELECT * FROM products WHERE cat_id = '0';";
        $run_product_checking = mysqli_query($con, $check_product);
        $result = array();
    while($row = mysqli_fetch_array($run_product_checking)){
    array_push($result,
    array('product_img1'=>$row[4]

));
}

    echo json_encode(array("result"=>$result));
?>

将IP地址更改为其域名值。

根据您的AsyncTask类,您将url作为第一个参数传递

    class GetImage extends AsyncTask<String,Void,Bitmap>{
    .....
    }
 String urlToImage = params[4];
要解决此问题,只需将参数值从4替换为0

String urlToImage = params[0];
PS:确保JSON字符串“IMAGE_URL”不返回空值

getImage(jsonObject.getString(IMAGE_URL));

为了避免从JSON中获取空值,您可以使用jsonObject.optString(IMAGE_URL)来处理空指针。无法更改参数[4],因为将给出java.lang.ArrayIndexOutOfBoundsException:length=1;index=4错误。顺便说一下,我得到的错误SkImageDecoder::Factory返回null。如何更改代码?能否在“String urlToImage=params[4]”行后打印“urlToImage”值,并告诉我结果如何?
getImage(jsonObject.getString(IMAGE_URL));