GVKun编程网logo

Android Studio卡在loading devices(android studio卡在building)

33

本文将为您提供关于AndroidStudio卡在loadingdevices的详细介绍,我们还将为您解释androidstudio卡在building的相关知识,同时,我们还将为您提供关于Androi

本文将为您提供关于Android Studio卡在loading devices的详细介绍,我们还将为您解释android studio卡在building的相关知识,同时,我们还将为您提供关于Android Studio 2020新版本卡在Gradle downloading/sync failed/下载缓慢/下载超时的问题、Android Studio 3.0 找不到 Android Device Monitor、Android studio 3.4 真机调试报错,no target device found、android studio BindService的实用信息。

本文目录一览:

Android Studio卡在loading devices(android studio卡在building)

Android Studio卡在loading devices(android studio卡在building)

adb devices 可以查看到设备,但是android studio 还是loading devices状态。
解决方法一:以管理员身份运行Android Studio
解决方法二:File -> Invalidate Caches & Restart然后选择
Invalidate and Restart选项
在这里插入图片描述在这里插入图片描述
解决方法三:重启系统

Android Studio 2020新版本卡在Gradle downloading/sync failed/下载缓慢/下载超时的问题

Android Studio 2020新版本卡在Gradle downloading/sync failed/下载缓慢/下载超时的问题

这个问题卡了我三天

头都疼了!

最终解决方法

新建一个项目,然后改两个文件

在这里插入图片描述

build.gradle里面改成这个:

buildscript {
  repositories {
    maven {
      url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    google()
    jcenter()
  }
  dependencies {
    classpath "com.android.tools.build:gradle:4.1.1"

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
  }
}

allprojects {
  repositories {
    maven {
      url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    google()
    jcenter()
  }
}

task clean(type: Delete) {
  delete rootProject.buildDir
}

gradle版本我选择4.1.1 上下两个文件里面的gradle版本要统一。

gradle-wrapper.properties这样改

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1.1-all.zip

在这里插入图片描述

三分钟下完加载完并且没有报错,阿里云牛!!!!!

以后凡是和Marven、Gradle这两个玩意相关的bug和问题,我一律aliyun镜像解决好吧!

到此这篇关于Android Studio 2020新版本卡在Gradle downloading/sync failed/下载缓慢/下载超时的问题的文章就介绍到这了,更多相关Android Studio卡在Gradle下载慢内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • 解决Android Studio Gradle Metadata特别慢的问题
  • Android Studio新建工程默认在build.gradle中加入maven阿里源的问题
  • Flutter下Android Studio配置gradle的方法
  • Android Studio Gradle 更换阿里云镜像的方法
  • Android Studio4.0解决Gradle下载超时问题
  • 如果你在Android Studio碰到gradle的各种问题就来看这篇文章吧(强烈建议收藏)
  • 关于android studio通过命令行运行gradle编译命令的问题
  • Android Studio 中Gradle配置sonarqube插件(推荐)
  • Android Studio调试Gradle插件详情

Android Studio 3.0 找不到 Android Device Monitor

Android Studio 3.0 找不到 Android Device Monitor

因为自 Android Studio 3.0 开始弃用 Android Device Monitor,Android Developers 官网上的原话是:

Android Device Monitor is a standalone tool that provides a UI for several Android app debugging and analysis tools.
However, most components of the Android Device Monitor are deprecated in favor of updated tools available in Android Studio 3.0 and higher. The table below helps you decide which developer tools you should use.

译文:

Android 设备监视器是一个独立的工具,为几个 Android 应用调试和分析工具提供了一个 UI。
但是,大多数 Android 设备监视器组件已弃用,以支持 Android Studio 3.0 和更高版本中提供的更新工具。下表帮助您决定应该使用哪些开发人员工具。

 

这里写图片描述
图 1.Android Developers 关于 Android Device Monitor 的说明页

 

虽然说被 “弃用”,但是不代表不支持,我们还是可以通过其他方式来使用 Android Device Monitor,具体使用方式如下:

android-sdk/tools/ 目录的命令行中输入以下内容:

如果你不知道你的 Android SDK 安装在哪个目录,预科可以在 Android Studio 的设置 1 中查看:

 

这里写图片描述
图 2.Android Studio 设置界面
进入 CMD 窗口 2,cd 到目标文件夹 tools 下,然后输入命令 montior
这里写图片描述
图 3.cmd 界面
接下来,我们就可以看到期待已久的 Android Device Monitor 界面了 3:
这里写图片描述
图 4.Android Device Monitor 界面

Android studio 3.4 真机调试报错,no target device found

Android studio 3.4 真机调试报错,no target device found

Android studio 3.1.2 的 Android monitor 改为 Android profiler,直接点这个就可以真机调试,在手机安装相应 app

如果不行,报错,“no target device found”,点一下右下角这个初始化 adb,再运行即可

点击右边的 device

android studio BindService

android studio BindService

一。输入:

1. 全部代码:

主界面代码:

public class BindServiceActivity extends AppCompatActivity implements View.OnClickListener {
   
   
    private static final String TAG = "BindServiceActivity";
    private Button mBtBindService;
    private Button mBtnUnbindService;
    MyBindService myBindService;
    boolean isBind=false;
    ServiceConnection coon = new ServiceConnection() {
   
   
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
   
   
        //绑定服务的时候偶触发
            Log.d(TAG, "onServiceConnected: ");
            MyBindService.MyBinder myBinder = (MyBindService.MyBinder) service;
            myBindService = myBinder.getService();
            isBind=true;
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
   
   
            Log.d(TAG, "onServiceDisconnected: ");
            //解绑的时候触发
        }
    };
    private Button mBtGetData;

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

    private void initView() {
   
   
        mBtBindService = (Button) findViewById(R.id.bt_bind_service);
        mBtnUnbindService = (Button) findViewById(R.id.btn_unbind_service);

        mBtBindService.setOnClickListener(this);
        mBtnUnbindService.setOnClickListener(this);
        mBtGetData = (Button) findViewById(R.id.bt_get_data);
        mBtGetData.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
   
   
        switch (v.getId()) {
   
   
            case R.id.bt_bind_service:
                Intent intent = new Intent(BindServiceActivity.this, MyBindService.class);
                bindService(intent, coon, Context.BIND_AUTO_CREATE);
                break;
            case R.id.btn_unbind_service:
                if (isBind){
   
   
                    unbindService(coon);
                    isBind=false;
                }

                break;
            case R.id.bt_get_data:
                Toast.makeText(myBindService, "随机数为:"+myBindService.getValues(), Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

服务代码:

public class MyBindService extends Service {
   
   
    private static final String TAG = "MyBindService";
    private IBinder iBinder;
    private Random mRandom;

    public MyBindService() {
   
   
    }
    public class MyBinder extends Binder{
   
   
        MyBindService getService(){
   
   
            return MyBindService.this;
        }
    }
    @Override
    public IBinder onBind(Intent intent) {
   
   
        Log.d(TAG, "onBind: ");
        // TODO: Return the communication channel to the service.
//        throw new UnsupportedOperationException("Not yet implemented");
        return iBinder;
    }

    @Override
    public void onCreate() {
   
   
        super.onCreate();
        Log.d(TAG, "onCreate: ");
        iBinder = new MyBinder();
        mRandom = new Random();
    }

    @Override
    public void onDestroy() {
   
   
        super.onDestroy();
        Log.d(TAG, "onDestroy: ");
    }

    @Override
    public boolean onUnbind(Intent intent) {
   
   
        Log.d(TAG, "onUnbind: ");
        return super.onUnbind(intent);
    }

    @Override
    public void onRebind(Intent intent) {
   
   
        super.onRebind(intent);
        Log.d(TAG, "onRebind: ");
    }
    public int getValues(){
   
   
        return mRandom.nextInt(100);
    }
}

声明:

service
            android:name=".MyBindService"
            android:enabled="true"
            android:exported="true"></service>

xml 代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".BindServiceActivity">


    <Button
        android:id="@+id/bt_bind_service"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="绑定服务"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn_unbind_service"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="解绑服务"
        app:layout_constraintEnd_toEndOf="@+id/bt_bind_service"
        app:layout_constraintStart_toStartOf="@+id/bt_bind_service"
        app:layout_constraintTop_toBottomOf="@+id/bt_bind_service" />

    <Button
        android:id="@+id/bt_get_data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="get data"
        app:layout_constraintEnd_toEndOf="@+id/btn_unbind_service"
        app:layout_constraintStart_toStartOf="@+id/btn_unbind_service"
        app:layout_constraintTop_toBottomOf="@+id/btn_unbind_service" />

</androidx.constraintlayout.widget.ConstraintLayout>

2. 步骤:

1. 创建绑定服务

  1. 在这里插入图片描述
  2. 在这里插入图片描述
    实现这些方法:onCreate,onBind,onUnbind,onDestroy
    这个方法中要返回一个 IBinder
    在这里插入图片描述
    我们创建一个类继承自 Binder(他实现接口是 IBinder)



public class MyBinder extends Binder{
   
   
        MyBindService getService(){
   
   
            return MyBindService.this;//获取自己
        }
    }

初始化我们创建的类,并设置为成员变量

@Override
    public void onCreate() {
   
   
        super.onCreate();
        Log.d(TAG, "onCreate: ");
        iBinder = new MyBinder();
        mRandom = new Random();
    }
private IBinder iBinder;

2. 绑定服务

Intent intent = new Intent(BindServiceActivity.this, MyBindService.class);
                bindService(intent, coon, Context.BIND_AUTO_CREATE);//绑定服务(参数:intent,绑定监听,常量)

创建绑定监听 coon

/**
     * 服务绑定连接监听
     */
    ServiceConnection coon = new ServiceConnection() {
   
   
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
   
   //绑定连接触发
            Log.d(TAG, "onServiceConnected: ");
            MyBindService.MyBinder myBinder = (MyBindService.MyBinder) service;
            myBindService = myBinder.getService();
            isBind=true;
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
   
   //绑定不连接触发
            Log.d(TAG, "onServiceDisconnected: ");
        }
    };

3. 取消服务:

if (isBind){
   
   //没绑定的话取消会报错
                    unbindService(coon);//取消服务
                    isBind=false;
                }

4. 生命周期

在这里插入图片描述
流程图
在这里插入图片描述

二。输出:

关于Android Studio卡在loading devicesandroid studio卡在building的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Android Studio 2020新版本卡在Gradle downloading/sync failed/下载缓慢/下载超时的问题、Android Studio 3.0 找不到 Android Device Monitor、Android studio 3.4 真机调试报错,no target device found、android studio BindService的相关知识,请在本站寻找。

本文标签: