把Open JDK換成Oracle JDK試試。
Android studio CreateProcess error=206, 文件名或擴(kuò)展名太長 解決方案今天項(xiàng)目切到master后仁堪,突然運(yùn)行不起來了,一直報(bào)CreateProcess error=206, 文件名或擴(kuò)展名太長的錯(cuò)誤 網(wǎng)上查了下嘹悼,發(fā)現(xiàn)這個(gè)是因?yàn)閣indow下使用I...
把Open JDK換成Oracle JDK試試。
Android studio CreateProcess error=206, 文件名或擴(kuò)展名太長 解決方案今天項(xiàng)目切到master后仁堪,突然運(yùn)行不起來了,一直報(bào)CreateProcess error=206, 文件名或擴(kuò)展名太長的錯(cuò)誤 網(wǎng)上查了下嘹悼,發(fā)現(xiàn)這個(gè)是因?yàn)閣indow下使用I...
CreateProcess error=206,這個(gè)問題我是使用OpenJDK出現(xiàn)的层宫,找了很多方法沒解決杨伙,后來吧Open JDK換成Oracle JDK就好了。
Android studio CreateProcess error=206, 文件名或擴(kuò)展名太長 解決方案今天項(xiàng)目切到master后萌腿,突然運(yùn)行不起來了限匣,一直報(bào)CreateProcess error=206, 文件名或擴(kuò)展名太長的錯(cuò)誤 網(wǎng)上查了下,發(fā)現(xiàn)這個(gè)是因?yàn)閣indow下使用I...
找到了這篇博客有類似的介紹:https://blog.csdn.net/weixin_39723441/article/details/113411077
如何將你的服務(wù)優(yōu)雅的暴露出去這里的服務(wù)指的是接口API,在代碼解耦中米死,有一種非常重要的方法就是“面向接口編程”锌历,面向接口編程使得協(xié)作的模塊之間只需要關(guān)注接口API,而無需關(guān)注API的具體實(shí)現(xiàn)峦筒。一套好的面...
看到了網(wǎng)易云信SDK的影子:com.netease.nimlib.sdk.NIMClient究西、com.netease.nimlib.SDKCache、com.netease.nimlib.sdk.SDKOptions物喷、……
如何將你的服務(wù)優(yōu)雅的暴露出去這里的服務(wù)指的是接口API卤材,在代碼解耦中,有一種非常重要的方法就是“面向接口編程”峦失,面向接口編程使得協(xié)作的模塊之間只需要關(guān)注接口API扇丛,而無需關(guān)注API的具體實(shí)現(xiàn)。一套好的面...
可以參考網(wǎng)易云信SDK的代碼
如何將你的服務(wù)優(yōu)雅的暴露出去這里的服務(wù)指的是接口API尉辑,在代碼解耦中帆精,有一種非常重要的方法就是“面向接口編程”,面向接口編程使得協(xié)作的模塊之間只需要關(guān)注接口API隧魄,而無需關(guān)注API的具體實(shí)現(xiàn)卓练。一套好的面...
@space0o0 包兩次host,第三層的ViewPager2滑動結(jié)束后無法繼續(xù)滑動第二層的ViewPager2购啄,第三層的ViewPager2不包host的話則第三層的ViewPager2無法滑動
ViewPager2 嵌套 ViewPager2 解決方案最近新業(yè)務(wù)要求昆庇,在ViewPager2 的item中,再放一個(gè)ViewPager2用來展示Banner效果闸溃。發(fā)現(xiàn)兩個(gè)嵌套之后,內(nèi)部的ViewPager2無法滑動拱撵,首先考慮的就...
的確辉川,我也遇到了3層嵌套的問題
ViewPager2 嵌套 ViewPager2 解決方案最近新業(yè)務(wù)要求,在ViewPager2 的item中拴测,再放一個(gè)ViewPager2用來展示Banner效果乓旗。發(fā)現(xiàn)兩個(gè)嵌套之后,內(nèi)部的ViewPager2無法滑動集索,首先考慮的就...
***看了CC官網(wǎng)的[中文](https://creativecommons.org/licenses/by-sa/4.0/deed.zh)及[華語](https://cre...
Android 10 的外部存儲文件讀寫被谷歌搞的老殘娱据,還好Android 11 回歸傳統(tǒng)
Android 11 外部存儲權(quán)限適配指南及方案前言 首先 Android 的權(quán)限大致分為三種: 普通權(quán)限:只需要在清單文件中注冊即可 危險(xiǎn)權(quán)限:需要在代碼中動態(tài)申請,以彈系統(tǒng) Dialog 的形式進(jìn)行請求 特殊權(quán)限:需要...
前言 首先 Android 的權(quán)限大致分為三種: 普通權(quán)限:只需要在清單文件中注冊即可 危險(xiǎn)權(quán)限:需要在代碼中動態(tài)申請盅惜,以彈系統(tǒng) Dialog 的形式進(jìn)行請求 特殊權(quán)限:需要...
Android原生股票圖-分時(shí)圖講解(一)[http://www.reibang.com/p/55b8cd35f583]Android原生股票圖-分時(shí)圖講解(二)[http...
///增加滾動支持掠剑,默認(rèn)為IOS蹦彈效果:
class ScrollDrawer extends StatefulWidget {
const ScrollDrawer({
this.color,
this.elevation = 16.0,
this.widthPercent,
this.callback,
this.physics = const BouncingScrollPhysics(),
@required this.child,
}) : assert(widthPercent < 1.0 && widthPercent > 0.0);
final Color color;
final double elevation;
final double widthPercent;
final DrawerCallback callback;
final ScrollPhysics physics;
final Widget child;
@override
_ScrollDrawerState createState() => _ScrollDrawerState();
}
class _ScrollDrawerState extends State<ScrollDrawer> {
@override
void initState() {
if (widget.callback != null) {
widget.callback(true);
}
super.initState();
}
@override
void dispose() {
if (widget.callback != null) {
widget.callback(false);
}
super.dispose();
}
@override
Widget build(BuildContext context) {
assert(debugCheckHasMaterialLocalizations(context));
final double _width =
MediaQuery.of(context).size.width * widget.widthPercent;
return ConstrainedBox(
constraints: BoxConstraints.expand(width: _width),
child: Material(
color: widget.color,
elevation: widget.elevation,
child: SingleChildScrollView(
physics: widget.physics,
child: widget.child,
),
),
);
}
}
Flutter之drawer詳細(xì)分析(你要的操作都有)1. 簡介 這篇文章主要講解有關(guān)drawer的一切。另:接Flutter相關(guān)項(xiàng)目郊愧,需要的私信或通過QQ:708959817朴译,聯(lián)系我 2. 初探 我們先來看看簡單的drawer...
教程很詳細(xì),感謝糕珊!我改了個(gè)版本动分,精簡了代碼,增加背景設(shè)置:
```dart
class CustomDrawer extends StatefulWidget {
const CustomDrawer({
this.backgroundColor,
this.elevation = 16.0,
@required this.child,
this.widthPercent,
this.callback,
}) : assert(widthPercent < 1.0 && widthPercent > 0.0);
final Color backgroundColor;
final double elevation;
final Widget child;
final double widthPercent;
final DrawerCallback callback;
@override
_CustomDrawerState createState() => _CustomDrawerState();
}
class _CustomDrawerState extends State<CustomDrawer> {
@override
void initState() {
if (widget.callback != null) {
widget.callback(true);
}
super.initState();
}
@override
void dispose() {
if (widget.callback != null) {
widget.callback(false);
}
super.dispose();
}
@override
Widget build(BuildContext context) {
assert(debugCheckHasMaterialLocalizations(context));
final double _width =
MediaQuery.of(context).size.width * widget.widthPercent;
return ConstrainedBox(
constraints: BoxConstraints.expand(width: _width),
child: Material(
color: widget.backgroundColor,
elevation: widget.elevation,
child: widget.child,
),
);
}
}
```
Flutter之drawer詳細(xì)分析(你要的操作都有)1. 簡介 這篇文章主要講解有關(guān)drawer的一切红选。另:接Flutter相關(guān)項(xiàng)目澜公,需要的私信或通過QQ:708959817,聯(lián)系我 2. 初探 我們先來看看簡單的drawer...
樓主喇肋,你代碼里注釋錯(cuò)了坟乾,不是4.0、5.0蝶防、6.0甚侣,而是6.0、8.0:
//6.0以下
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
imei = getImeiOrMeid(ctx);
}
//6.0-8.0
else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Map imeiMaps = getImeiAndMeid(ctx);
imei = getTransform(imeiMaps);
}
//8.0以上
else {
Map imeiMaps = getIMEIforO(ctx);
imei = getTransform(imeiMaps);
}
如何正確獲取IMEI及MEID在項(xiàng)目支持的時(shí)候间学,由于后臺需要記錄日志殷费,而記錄日志就或多或少的需要獲得手機(jī)的IMEI來做標(biāo)示。在安卓系統(tǒng)版本的迭代情況下低葫,獲取IMEI方式會遇到很多問題详羡。下面通過代碼來演示如...
@coolstar1204 老鐵,你是怎么實(shí)現(xiàn)的嘿悬,是不是通過EventBus+JavaBean下沉到組件服務(wù)中心实柠?
App組件化與業(yè)務(wù)拆分那些事前言 最近事情比較多,2個(gè)月沒寫文章了善涨≈涎危看筆者圣誕節(jié)還在寫技術(shù)文章,就知道程序猿的生活有多慘淡钢拧。 上幾篇單元測試的文章蟹漓,筆者已經(jīng)把大部分思路講給大家聽了,如果在開發(fā)中有新的思...