Phonegap shows error - “Oh geez. Your build failed.”

送分小仙女□ 提交于 2019-12-11 16:03:25

问题


I am using Phonegap Build for my Android app and am running into the following error when compiling:

Oh geez. Your build failed. Click the "Log" button above to view the compile log. If you need help diagnosing the issue, you can post to the support forum with your App ID.

XML

 <?xml version="1.0" encoding="utf-8" ?>
    <widget xmlns = "http://www.w3.org/ns/widgets"
        xmlns:gap = "http://phonegap.com/ns/1.0"
        xmlns:android = "http://schemas.android.com/apk/res/android"
        id        = "kmcrs.mobibbhvle.app"
        versionCode = "22"
        version   = "2.2">
        <name>bobile App</name>
        <description>
            bobile mobile app version
        </description>
        <author email="mmakhan669@gmail.com" href="ujairo.com">
            Ujairo.com
        </author>

        <content src="index.html" />

        <preference name="orientation" value="portrait" />
        <preference name="android-build-tool" value="gradle" />     
        <preference name="phonegap-version" value="cli-7.1.0" />

        <gap:plugin name="cordova-plugin-whitelist" source="npm" />

        <gap:plugin name="phonegap-plugin-push" source="npm" spec="1.11.1"  /> 


        <gap:plugin name="cordova-plugin-device" source="npm" />        
        <gap:plugin name="cordova-plugin-inappbrowser" source="npm" />      
        <gap:plugin name="cordova-plugin-splashscreen" source="npm" />  
        <gap:plugin name="cordova-plugin-geolocation" source="npm" spec="1.0.1" />
        <gap:plugin name="cordova-plugin-network-information" source="npm" />

        <gap:plugin name="cordova-plugin-request-location-accuracy" source="npm"  spec="2.2.3" />   
        <gap:plugin name="cordova-plugin-x-toast" source="npm" spec="2.6.2" />  


        <gap:plugin name="cordova-plugin-media" source="npm" spec="5.0.0" />    
        <gap:plugin name="cordova.plugins.diagnostic" source="npm" spec="4.0.8" />  

        <gap:plugin name="cordova-plugin-googlemaps"  source="npm" spec="2.3.10" >
           <param name="API_KEY_FOR_ANDROID" value="AIzaSyBSkBzEjEwIC-0uuJmNVvBgC4Lomn1qX2k" />
           <param name="API_KEY_FOR_IOS" value="your key" />
           <param name="LOCATION_WHEN_IN_USE_DESCRIPTION" value="Karenderia wants to use your location" />
           <param name="LOCATION_ALWAYS_USAGE_DESCRIPTION" value="Karenderia want to always use your location" />
        </gap:plugin>

        <gap:plugin name="cordova-plugin-buildinfo" source="npm" spec="2.0.2"  />

        <gap:plugin name="cordova-plugin-googleplus" source="npm">
         <variable name="REVERSED_CLIENT_ID" value="" />
        </gap:plugin>

        <platform name="android" />    
        <platform name="ios" /> 

        <preference name="AutoHideSplashScreen" value="false" />    
        <preference name="SplashScreenDelay" value="10000" />    
        <preference name="fullscreen" value="false" />
        <preference name="android-minSdkVersion" value="16" />     
        <preference name="ShowSplashScreenSpinner" value="false" />    

        <access origin="*" />
        <access origin="tel:*" launch-external="yes" />

        <gap:config-file platform="android" parent="/manifest">
            <supports-screens android:xlargeScreens="true" android:largeScreens="true" android:smallScreens="true" />
            <application android:theme="@android:style/Theme.NoTitleBar" >            
            </application>        
        </gap:config-file> 

        <preference name="phonegap-version" value="cli-7.1.0" />     
        <gap:plugin name="cordova-plugin-camera" source="npm" spec="2.4.1" />

        <platform name="ios">    
            <config-file platform="ios" target="*-Info.plist" parent="NSLocationAlwaysUsageDescription">
                <string>Karenderia want to always use your location</string>
            </config-file>
            <config-file platform="ios" target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
                <string>Karenderia wants to use your location</string>
            </config-file>
        </platform>   

        <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
        <string>need camera access to take pictures</string>
        </edit-config>

        <edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge">
            <string>need to photo library access to get pictures from there</string>
        </edit-config>

        <edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
            <string>need location access to find things nearby</string>
        </edit-config>

        <edit-config target="NSPhotoLibraryAddUsageDescription" file="*-Info.plist" mode="merge">
            <string>need to photo library access to save pictures there</string>
        </edit-config>

        <platform name="android">

            <resource-file src="www/beep.wav" target="res/raw/beep.wav" /> 

            <icon density="ldpi" src="res/icons/android/drawable-ldpi-icon.png" />
            <icon density="mdpi" src="res/icons/android/drawable-mdpi-icon.png" />
            <icon density="hdpi" src="res/icons/android/drawable-hdpi-icon.png" />
            <icon density="xhdpi" src="res/icons/android/drawable-xhdpi-icon.png" />
            <icon density="xxhdpi" src="res/icons/android/drawable-xxhdpi-icon.png" />
            <icon density="xxxhdpi" src="res/icons/android/drawable-xxxhdpi-icon.png" />

            <splash density="land-ldpi" src="res/screens/android/drawable-land-ldpi-screen.png" />
            <splash density="land-mdpi" src="res/screens/android/drawable-land-mdpi-screen.png" />
            <splash density="land-hdpi" src="res/screens/android/drawable-land-hdpi-screen.png" />
            <splash density="land-xhdpi" src="res/screens/android/drawable-land-xhdpi-screen.png" />
            <splash density="land-xxhdpi" src="res/screens/android/drawable-land-xxhdpi-screen.png" />
            <splash density="land-xxxhdpi" src="res/screens/android/drawable-land-xxxhdpi-screen.png" />
            <splash density="port-ldpi" src="res/screens/android/drawable-port-ldpi-screen.png" />
            <splash density="port-mdpi" src="res/screens/android/drawable-port-mdpi-screen.png" />
            <splash density="port-hdpi" src="res/screens/android/drawable-port-hdpi-screen.png" />
            <splash density="port-xhdpi" src="res/screens/android/drawable-port-xhdpi-screen.png" />
            <splash density="port-xxhdpi" src="res/screens/android/drawable-port-xxhdpi-screen.png" />
            <splash density="port-xxxhdpi" src="res/screens/android/drawable-port-xxxhdpi-screen.png" />
        </platform>

        <platform name="ios">

            <icon height="57" platform="ios" src="res/icons/ios/icon.png" width="57" />
            <icon height="114" platform="ios" src="res/icons/ios/icon@2x.png" width="114" />
            <icon height="40" platform="ios" src="res/icons/ios/icon-40.png" width="40" />
            <icon height="80" platform="ios" src="res/icons/ios/icon-40@2x.png" width="80" />
            <icon height="50" platform="ios" src="res/icons/ios/icon-50.png" width="50" />
            <icon height="100" platform="ios" src="res/icons/ios/icon-50@2x.png" width="100" />
            <icon height="60" platform="ios" src="res/icons/ios/icon-60.png" width="60" />
            <icon height="120" platform="ios" src="res/icons/ios/icon-60@2x.png" width="120" />
            <icon height="180" platform="ios" src="res/icons/ios/icon-60@3x.png" width="180" />
            <icon height="72" platform="ios" src="res/icons/ios/icon-72.png" width="72" />
            <icon height="144" platform="ios" src="res/icons/ios/icon-72@2x.png" width="144" />
            <icon height="76" platform="ios" src="res/icons/ios/icon-76.png" width="76" />
            <icon height="152" platform="ios" src="res/icons/ios/icon-76@2x.png" width="152" />
            <icon height="29" platform="ios" src="res/icons/ios/icon-small.png" width="29" />
            <icon height="58" platform="ios" src="res/icons/ios/icon-small@2x.png" width="58" />
            <icon height="87" platform="ios" src="res/icons/ios/icon-small@3x.png" width="87" />

            <splash height="1136" platform="ios" src="res/screens/ios/Default-568h@2x~iphone.png" width="640" />
            <splash height="1334" platform="ios" src="res/screens/ios/Default-667h.png" width="750" />
            <splash height="2208" platform="ios" src="res/screens/ios/Default-736h.png" width="1242" />
            <splash height="1242" platform="ios" src="res/screens/ios/Default-Landscape-736h.png" width="2208" />
            <splash height="1536" platform="ios" src="res/screens/ios/Default-Landscape@2x~ipad.png" width="2048" />
            <splash height="768" platform="ios" src="res/screens/ios/Default-Landscape~ipad.png" width="1024" />
            <splash height="2048" platform="ios" src="res/screens/ios/Default-Portrait@2x~ipad.png" width="1536" />
            <splash height="1024" platform="ios" src="res/screens/ios/Default-Portrait~ipad.png" width="768" />
            <splash height="960" platform="ios" src="res/screens/ios/Default@2x~iphone.png" width="640" />
            <splash height="480" platform="ios" src="res/screens/ios/Default~iphone.png" width="320" />
        </platform>    

    </widget>

Compile logs here.


回答1:


If you scroll all the way down in your logs, you will see multiple error message:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:tbxml-android:] /build/intermediates/exploded-aar/tbxml-android/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="za.co.twyst" to force usage

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 7.29 secs
Error: /gradlew: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
/AndroidManifest.xml:38:5-74 Error:
    uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:tbxml-android:] /build/intermediates/exploded-aar/tbxml-android/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="za.co.twyst" to force usage

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:tbxml-android:] /build/intermediates/exploded-aar/tbxml-android/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="za.co.twyst" to force usage

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    at ChildProcess.whenDone (/cordova/node_modules/cordova-common/src/superspawn.js:169:23)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

They all point to the same issue, there is something (most probably a plugin) that requires minimum SDK version 16, while the minimum of the project is 19. The minimum SDK version of 19 is set by the cordova-plugin-googlemaps plugin. You'll have to find out which of these plugins requires minimum SDK version 16 and see if there is an update available.



来源:https://stackoverflow.com/questions/51826504/phonegap-shows-error-oh-geez-your-build-failed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!