为了保证程序不会因为Gradle版本不同而产生问题,于是创建了Gradle Wrapper。它的作用是将项目绑定到Gradle版本。当我们导入项目时,会自动下载对应的Gradle版本。
不过,还有,蛋。问题来了
这导致我们在打开其他项目时,如果当前电脑没有为该项目配置Gradle版本,我们就需要下载对应的Gradle版本。不过Gradle的二进制包比较大,而且链接是国外服务器,在国内下载起来比较困难。这时候就会出现下面的情况。
你不知道AS是否死了,或者它是否真的在后台做着什么……要么你必须耐心等待,要么你可以直接关闭AS,而且必须强制关闭。这是非常不仁慈的。其实之所以卡在这里,是因为Gradle包是后台从服务器下载的。这个Gradle包的大小通常有几十兆字节。如果网络环境不是很好,可能需要很长时间才能完成。显然,我们没有那么多时间花在这里,我们需要想办法解决。
解决方式一
当你安装Android Studio和SDK时,你肯定会安装至少一个Gradle。此时可以通过新建项目来查询Gradle版本。
还需要知道本地Gradle版本路径,打开设置界面
有几个参数需要记录,与SDK相匹配。导入项目中编译的SDK 版本也必须存在于本地计算机上。
记住这些参数,然后将要导入的工程的参数更改为与当前的参数一致,工程就可以正常导入了。
我们来看看如何修改:
- xxx-project/.idea/gradle.xml 文件:
添加或修改-xxx-project/gradle/wrapper/gradle-wrapper.properties文件:
distributionUrl=https://services.gradle.org/distributions/gradle-previous gradleVersion-all.zip
- xxx-project/build.gradle 文件:
Android Plugin Version前面的classpath‘com.android.tools.build:gradle:’(这是整个项目的配置)
- xxx-project/app/build.gradle 文件:
修改编译SDK版本和构建工具版本参数。 (这是单个模块的配置,项目中的每个模块都需要修改)修改完成后就可以正常导入了。
如果电脑断网,可以直接导入工程,但如果工程无法正常运行,仍然需要修改这些参数才能正常编译。
解决方式二
上述主要问题是Gradle版本无法下载。我们可以单独下载指定的Gradle版本。
首先可以查看项目依赖的gradle版本。
QQ20160905-4@2x.png 然后找到对应的版本下载。
https://pan.baidu.com/s/1pLEkm4F#path=%252F
Windows默认将下载的文件放在C:Usersxxx.gradlewrapperdists目录下
Paste_Image.pngmac 默认位于/Users/apple/.gradle/wrapper/dists/
粘贴_图像.png
我们之前了解过TextInput 组件。有时我们需要在TextInput 组件中复制或粘贴一些文本。
React Native 为开发人员提供了剪贴板API。 Clipboard组件可以读写iOS和Android剪贴板中的内容。目前仅支持获取或存储字符串。
主要方法
静态getString()
获取剪贴板的文本内容并返回一个Promise(后面会介绍)
您可以通过以下方式调用它。
async _getContent() { var content=wait Clipboard.getString(); }
静态setString(content: 字符串)
设置剪贴板的文本内容。您可以通过以下方式调用它。
_setContent() { Clipboard.setString("hello world"); }
官方例子
代码比较简单,直接展示官方例子:
从"react"导入React,{Component};
进口{
应用程序注册表,
样式表,
看法,
文本,
剪贴板
来自"react-native";
类AwesomeProject 扩展组件{
状态={
content: "内容将出现在这里"
};
//异步函数箭头函数不再需要绑定this
_setClipboardContent=async()={
Clipboard.setString("Hello World");
尝试{
var content=等待Clipboard.getString();
this.setState({内容});
} 捕获(e) {
this.setState({content:e.message});
}
};
使成为() {
return (点击将“Hello World”放入剪贴板{this.state.content});
}
}
AppRegistry.registerComponent("AwesomeProject", ()=AwesomeProject);运行结果:
【React Native:实现操作系统剪贴板Clipboard访问】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
这篇文章肯定讲的是如何用 React Native app 来操作手机的剪贴板吧?
有8位网友表示赞同!
终于可以分享代码片段了,想做个功能需要 copy-paste 的。
有11位网友表示赞同!
我一直好奇怎么在跨平台的环境下访问剪贴板啊,这篇文章应该能解答我的疑问。
有18位网友表示赞同!
React Native 开发越来越方便了,现在连剪贴板都能玩儿的了吗?
有10位网友表示赞同!
我现在正在做个项目需要用到剪贴板功能,看看这篇文章能不能给我一些灵感。
有13位网友表示赞同!
学习新知识很棒!希望这篇文章能讲得详细一些。
有9位网友表示赞同!
我以前想学 React Native 的时候就遇到这样的问题了,不知道怎么操作剪贴板,现在终于有解决方法了?
有15位网友表示赞同!
移动端开发真是门槛越来越低,以前还要担心各种平台的差异性。
有6位网友表示赞同!
这篇文章应该会介绍几种访问剪贴板的方法吧?希望能有一个比较简单实用的方案。
有19位网友表示赞同!
剪贴板上内容的安全问题也很关键啊,希望这篇文章也能提及相关防护措施。
有14位网友表示赞同!
看标题就知道了,要操作剪贴板一定是要用到原生模块的呀!
有6位网友表示赞同!
这个功能在 iOS 和 Android 上肯定是不一样的吧?作者会不会讲到它们的差异性呢?
有13位网友表示赞同!
开发过程中的小细节总是让人头疼,希望这篇文章能解答我的困扰。
有20位网友表示赞同!
学习 React Native 的过程中确实有很多坑,但是只要掌握了这些技巧,就能开发更加便捷的 App 吧!
有12位网友表示赞同!
这个分享感觉很有用,我最近也在尝试做一些移动端应用。
有11位网友表示赞同!
以后可以用这篇博客来参考,操作剪贴板就不用再愁啦!
有17位网友表示赞同!
React Native 的能力真的越来越强大了啊!
有12位网友表示赞同!
如果这篇文章能解释得详细一点,那将会非常有帮助。
有13位网友表示赞同!
期待这篇博客能分享一些实用的代码和技巧!
有16位网友表示赞同!