这个 BUG
是 Xcode.11
引起的, 可以查看这个问题的提交记录,链接为:https://github.com/facebook/react-native/issues/25138 我们只需要找到 RCTModuleMethod.mm
这个文件
修改
static BOOL RCTParseUnused(const char **input)
{
return RCTReadString(input, "__unused") ||
RCTReadString(input, "__attribute__((__unused__))") ||
RCTReadString(input, "__attribute__((unused))");
}
这个函数插入 RCTReadString(input, "attribute((unused))") || 这行代码重新运行就行了。 这样项目就能启动了,而且打包的 app 也不会闪退了。
更新 gradle 即可, 可参考 gradle 版本更新, 或者 JDK降级到 8
, 请参考Mac 安装和卸载 Java JDK
static BOOL RCTParseUnused(const char **input)
{
return RCTReadString(input, "__unused") ||
RCTReadString(input, "__attribute__((__unused__))") ||
RCTReadString(input, "__attribute__((unused))");
}
这个函数插入 RCTReadString(input, "**attribute**((**unused**))")
|| 这行代码重新运行就行了。 这样项目就能启动了,而且打包的 app 也不会闪退了。
task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}
//修改为
wrapper {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}
cd /Users/[usre]/Library/Android/sdk
cd tools/bin
# 以上三行是进入到自己到sdk目录文件夹下
sudo ./sdkmanager --licenses #执行这句才是关键,它会提示你去允许认证
#然后命令会提醒你确定y/n(accept lincense),一路y下去便可以了。
#假如看到以下
Exception in thread "main" java.lang. NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
1. 点击 `File` > `Settings`(在 `Mac` 中,点击 `Android Studio` > `Preferences`),打开 `Preferences` 窗口。
2. 在左侧面板中,点击 `Appearance` & `Behavior` > `System Settings` > `Updates`。
3. 确保已选中 `Automatically check for updates`,然后从下拉列表中选择一个渠道(见图 1)。
4. 点击 `Apply` 或 `OK`。
大概意思就是你把`Android Studio` 更新到最新版本就行了. 点那个`check now` , 直接更新
在 Mac
中,点击 Android Studio
> Preferences
),打开 Preferences
窗口。 Build,Execution,Deployment
=> Gradle
=> Android Studio
, 勾选 Enable embedded Maven repository
android/build.gradle
中 google()
方法的位置,见下方代码注释;allprojects {
repositories {
google() // new 移到这里来
mavenLocal()
jcenter()
maven {
url "https://jitpack.io"
}
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url "https://maven.google.com"
}
// google() // old
}
}
gradle
版本到 4.10.1
在 app
的 build
中
android {
defaultConfig {
//添加如下配置就OK了
javaCompileOptions {
annotationProcessorOptions { includeCompileClasspath = true }
}
}
}
打开 ReactNative
根目录下的 node_modules
文件夹 找到 react-native-yunpeng-alipay
文件夹并打开 依次打开目录: android
-> src
-> main
-> java
-> com
-> yunpeng
-> alipay
-> AlipayPackage.java
注释调这一行;
// @Override
// public List<Class<? extends JavaScriptModule>> createJSModules() {
// return Collections.emptyList();
// }
0.57 版本打包错误,SDK 版本不匹配问题
node_modules
中找到报错的包里面的 build.gradle
,比如我这个就是\node_modules\react-native-version-number\android\build.gradle
;build.gradle
,使其与 android/build.gradle
(也可能是 android/app/build.gradle
)里面的 SDK
版本保持一致;build.gradle
里的 compile
改为 implementation
,因为 compile
已过时。android {
compileSdkVersion 27 // 23 -> 27
buildToolsVersion "27.0.3" // 23.0.1 -> 27.0.3
defaultConfig {
minSdkVersion 16
targetSdkVersion 26 // 22 -> 26
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
lintOptions {
warning 'InvalidPackage'
}
}
dependencies {
implementation 'com.facebook.react:react-native:+' // compile -> implementation
}
已经提示了合并错误
Manifest merger failed with multiple errors, see logs
打开 AndroidMainifest.xml
=> 点底部的 Merged Mainfest
=> 看到右边的合并错误, 点进去, 注释掉重复的就可以了 http://yifeng.studio/2017/07/09/android-manifest-merge-conflict/
快速定义错误, 进入终端输入
./gradlew compileDebugJavaWithJavac --stacktrace
看看哪里报错了, 修正即可
mavenCentral()
google()
jcenter()
maven { url 'https://maven.google.com' }
maven { url "https://jitpack.io" }
这个问题是 Gradle
和 Gradle
插件版本对应不上造成的
gradle 插件版本配置位置:project
对应的 build.gradle
文件中
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
}
}
gradle
版本配置位置:
gradle/wrapper/gradle-wrapper.properties
文件中
distributionUrl=http\://services.gradle.org/distributions/gradle-4.1-all.zip
版本对应关系如下
很明显对应不上,gradle 4.1
应该对应 3.0.0
把 classpath
对应的 3.3.0
改为 3.0.0
即可
底下报错会提示你安装构建工具, 你安装即可. 不要手贱点 update
.
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有