本文将为您提供关于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 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)
adb devices
可以查看到设备,但是android studio 还是loading devices状态。
解决方法一:以管理员身份运行Android Studio
解决方法二:File -> Invalidate Caches & Restart然后选择
Invalidate and Restart选项
解决方法三:重启系统
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 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.1.2 的 Android monitor 改为 Android profiler,直接点这个就可以真机调试,在手机安装相应 app
如果不行,报错,“no target device found”,点一下右下角这个初始化 adb,再运行即可
点击右边的 device
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. 创建绑定服务
实现这些方法: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 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的相关知识,请在本站寻找。
本文标签: