使用谷歌地图时生成签名apk时出错?

时间:2017-04-04 09:34:03

标签: android google-maps android-manifest

您好我在生成签名apk时遇到此错误:

      Error:Execution failed for task ':app:lintVitalRelease'.
        > Lint found fatal errors while assembling a release target.
       To proceed, either fix the issues identified by lint, or modify your      build script as follows:
         ...
       android {
       lintOptions {
        checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
         // but continue the build even when errors are found:
        abortOnError false
        }
       }

这是我的清单:

       <?xml version="1.0" encoding="utf-8"?>
       <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="android.OMMSoftware.Navsahydri">

       <uses-permission android:name="android.permission.INTERNET" />
       <uses-permission  android:name="android.permission.ACCESS_NETWORK_STATE"  />
       <uses-permission
       android:name="android.permission.ACCESS_FINE_LOCATION"
       android:protectionLevel="signature" />
       <uses-permission
       android:name="android.permission.ACCESS_COARSE_LOCATION"
       android:protectionLevel="signature" />

       <uses-library
       android:name="com.google.android.maps"
       android:required="true" />

       <application
        android:allowBackup="true"
        android:icon="@drawable/logo_circular"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/MyMaterialTheme">
       <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="AIzaSyDjqmmXd1d1yk7BtncDQgXSmya-NdBkc2w" />

        <activity android:name=".Splash">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>
        <activity android:name=".Home" />
        <activity android:name=".Gallery" />
        <activity android:name=".Contactus" />
        <activity android:name=".Placements"></activity>
        </application>
        </manifest>

代码没有错误,即使是apk正在构建,但是当我尝试生成签名的apk时,它显示上面的错误,我在我的项目中使用谷歌地图。请帮助。

2 个答案:

答案 0 :(得分:9)

Gradle的Android插件允许您使用模块级build.gradle文件中的 lintOptions {} 块配置某些lint选项,例如要运行或忽略的检查。

  android {
  ...
  lintOptions {
            checkReleaseBuilds false
            abortOnError false
            ignoreWarnings true //false
              }
       }

然后清理重建运行

答案 1 :(得分:0)

设置lintOptions忽略错误或警告不是解决此问题的方法,而是等待应用程序在发行版本中崩溃。

解决此问题的理想方法是确保在构建APK之前我们已修复错误。您可以在Android Studio(Android Studio Main Menu > Analyze > Inspect Code)中运行“检查代码”实用程序。选择检查范围为Whole Project并运行实用程序。修复所有报告的错误,您应该可以构建APK。

请注意,如果要摆脱此问题,必须修复每个错误。需要注意的另一点:Lint实用程序会自动为您提供修复错误的选项(在大多数情况下)。使用您的判断来使用/不使用它们。

侧面注意:如果您使用的是任何自定义模块,并且可以访问源代码,请确保没有使用不符合您正在编译和定位的SDK版本的已弃用的API。

在解决所有可能的导致崩溃的错误之后,您仍然遇到问题,然后将lintOption abortOnError设置为false,但将选项checkReleaseBuilds设置为{{1 }},因此您可以继续构建APK,并在构建并根据需要修复它们时仍然看到错误。