我不确定为什么会这样,但是我做了一些挖掘并试图找到其他解决方案。没有人解决特别重复的问题:
android {
compileSdkVersion 26
buildToolsVersion "23.0.3"
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
all*.exclude group: 'com.android.support', module: 'support-annotations'
}
defaultConfig {
applicationId "com.myapp"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':react-native-customized-image-picker')
compile project(':react-native-vector-icons')
compile project(':react-native-restart')
compile project(':react-native-image-picker')
compile project(':react-native-fast-image')
compile project(':lottie-react-native')
compile project(':react-native-fetch-blob')
compile "com.android.support:multidex:1.0.1"
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.fresco:fresco:1.0.1"
compile "com.facebook.fresco:animated-gif:1.0.1"
compile("com.facebook.react:react-native:0.54.0") { force = true } // From node_modules
}
我删除了一些发现的重复compiles
,但仍然没有帮助。我在跟踪中注意到此警告:
C:\ReactProjects\myapp\android\app\src\main\AndroidManifest.xml:11:5-29:19 Warning:
application@android:theme was tagged at AndroidManifest.xml:11 to replace other declarations but no other declaration present
C:\ReactProjects\myapp\android\app\src\main\AndroidManifest.xml:16:9-19:35 Warning:
meta-data#com.bumptech.glide.integration.okhttp.OkHttpGlideModule was tagged at AndroidManifest.xml:16 to remove other declarations but no other declaration present
我不知道这是否会导致整个失败。最后这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="true"
tools:replace="android:theme"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
我试图获得成功的构建时遇到的每个问题,我都看过SO或其他来源,但这很可取。我从来没有插入compile "com.android.support:multidex:1.0.1"
,并且在出现此问题之前就可以使用。仍然没有成功。
我记得做的最后一件事是在主目录中保存一个名为“ safecode.js”的文件,基本上它只包含我要保存的代码。
答案 0 :(得分:1)
我遇到了完全相同的问题,并且我知道这可能会令人头疼。这是我的解决方案:
1)确保build.gradle
和settings.gradle
中没有重复的依赖项
2)你们中的大多数人可能不喜欢这个,但是我(想输入这个)升级了大多数东西,例如:
compileSdkVersion 26-build.gradle
buildToolsVersion“ 26.0.1”-build.gradle
settings.gradle
build.gradle not in app directory
注意:您的命令提示符的构建UI将会更改,看起来确实很庞大,但是很酷。您会习惯的。另外,您可能需要尽快更改compile
中的build.gradle
。
以下是解决方案:in here
应该差不多了,但是我也会告诉您我所做的其他事情可能会影响您的BUILD FAILED
:
1)您可能需要Java8。JDK1.8。将此添加到build.gradle app directory
:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
2)摆脱compile "com.android.support:multidex:1.0.1"
3)targetSdkVersion 22 update to 26
最后
4)在build.gradle not in app directory
中,将maven { url 'https://maven.google.com' }
放入两个存储库中。
注意:您可以使用google()
代替它,但是它对我不起作用,所以我坚持使用maven { url 'https://maven.google.com' }
。
还请注意:您可能会收到消息,提示"WARNING: The specified Android SDK Build Tools version (26.0.1) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.0."
。嘿,26似乎是我们的魔法数字,如果有效,那就不要碰它。除非您绝对确定需要这样做。
据我所知,从构建过程中获得的警告不会影响您的BUILD SUCCESS
或BUILD FAILED
。
我希望这对所有人都有用!