第一行代码(第二版)运行BUG小结

阅读: 评论:0

第一行代码(第二版)运行BUG小结

第一行代码(第二版)运行BUG小结

官方文档

官方文档

Android Studio引入

C:Program FilesAndroidAndroid Studiojrebin
C:UsersadminAppDataLocalAndroidSdkplatform-tools

初始运行时报错

版本过高,将adle版本降低

//将 33版本改为30
android {compileSdkVersion 30buildToolsVersion "30.0.0"defaultConfig {targetSdkVersion 30}
}

Android主题设置为@android:style/Theme.Dialog报错

用@android:style/Theme.Dialog的话必须把对应的JAVA程序继承的 AppCompatActivity改为Activity
如果使用@style/Theme.AppCompat.Dialog的话就不用改
原因:
eclipse的MainActivity.java继承的是Activity类,而android studio中Main继承的是AppCompatActivity

添加百分比布局库依赖问题

版本过老,Android studio升级到3.0之后,compile就改为了implementation
依赖的写法改为:implementation

implementation 'androidx.percentlayout:percentlayout:1.0.0'

l

<?xml version="1.0" encoding="utf-8"?>
<androidx.percentlayout.widget.PercentFrameLayoutxmlns:android=""xmlns:app=""android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button1"android:text="Button 1"android:layout_gravity="left|top"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/><Buttonandroid:id="@+id/button2"android:text="Button 2"android:layout_gravity="right|top"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/><Buttonandroid:id="@+id/button3"android:text="Button 3"android:layout_gravity="left|bottom"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/><Buttonandroid:id="@+id/button4"android:text="Button 4"android:layout_gravity="right|bottom"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/>
</androidx.percentlayout.widget.PercentFrameLayout>

RecyclerView的引入问题

adle,引入

implementation 'com.android.support:recyclerview-v7:30.1.0'

在gradle.properties中有下面两行代码:

android.useAndroidX=true//当前项目是否启用androidx
ableJetifier=true//是否将依赖包迁移至androidx。

因此新建布局时需要以androidx为路径的开头,修改布局代码如下:

&lerview.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"/>

message.png

链接: message_left.png

制作Nine-Patch 环境配置及使用

链接: 环境配置

广播接收器的时候,监听网络变化,告知用户是有网络还是无网络,出错

//ActiveNetworkInfo()为红色,是因为没有权限
NetworkInfo ActiveNetworkInfo();

在app/src/l里添加权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

接收系统广播 静态注册实现开机启动

需要注意一下,不是看到启动界面以后就是启动完成了,而是得等他全部准备好,才会出现提示框,显示“Boot Complete”,就好像开了电脑以后,得等那个电脑管家提示“开机用了多少秒,打败了全国百分之多少的用户”,才差不多算完全开机

自定义广播无法显示

在安卓8.0之后取消了大部分静态注册

方法一:该方法可以实现标准广播和有序广播,还可截断有序广播

发送广播的时候携带intent.addFlags(0x01000000); 即能让广播突破隐式广播限制。

        Button button=(Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent=new Intent("ample.broadcasttest.MY_BROADCAST");//发送广播前加上“intent.addFlags(0x01000000);”骗过安卓8.0+的检测,即能让广播突破隐式广播限制intent.addFlags(0x01000000);sendBroadcast(intent);//标准广播//sendOrderedBroadcast(intent,null);//有序广播,截断有序广播}});

截断有序广播
Broadcasttest项目—>MainActivity.java

        Button button=(Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent=new Intent("ample.broadcasttest.MY_BROADCAST");//发送广播前加上“intent.addFlags(0x01000000);”骗过安卓8.0+的检测,即能让广播突破隐式广播限制intent.addFlags(0x01000000)sendOrderedBroadcast(intent,null);}});

Broadcasttest项目—&l

<manifest xmlns:android=""package="ample.broadcasttest">...<receiverandroid:name=".MyBroadcastReceiver"android:enabled="true"android:exported="true">//通过android:priority设置优先级<intent-filter  android:priority="100" ><action android:name="ample.broadcasttest.MY_BROADCAST"/></intent-filter></receiver>...
</manifest>

Broadcasttest项目—>MyBroadcastReceiver.java

 
        

本文发布于:2024-01-29 07:10:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170648341213579.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:小结   代码   BUG
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23