Android aar库中的google_play_services_版本值出错

Android aar库中的google_play_services_版本值出错,android,Android,我有图书馆和项目,这取决于该图书馆。库作为aar文件存储在我的私有maven repo中。库有不同的依赖项,其中之一是谷歌地图。所以我在build.gradle文件中指定了它,并将lib清单中的元数据标记设置为 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 库清单 &l

我有图书馆和项目,这取决于该图书馆。库作为aar文件存储在我的私有maven repo中。库有不同的依赖项,其中之一是谷歌地图。所以我在build.gradle文件中指定了它,并将lib清单中的元数据标记设置为

<meta-data 
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
库清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.myapplib"
android:versionCode="4"
android:versionName="1.0.3">

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="21" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:name="com.myapplib.app.MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/ic_logo"
    android:theme="@style/AppTheme" >
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <activity
        android:name="com.myapplib.gui.LaunchActivity"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name="com.myapplib.gui.LandingPageActivity"
        android:noHistory="true"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name="com.myapplib.gui.PreferenceActivity"
        android:noHistory="true"
        android:label="@string/app_name" >
    </activity>
</application>
</manifest>
所以主要的逻辑是在库内部。项目只是有一些风格的变化。正如我在aar文件中看到的,有一个R.txt文件,其中包含库中的所有值和参数,还有一行

int integer谷歌播放服务版本0x7f080002

但不管怎样,每次我在编译项目时都会出错。我如何解决这个问题?
一个最简单也是糟糕的解决方案是在我的库中硬编码这个值,但我认为这很糟糕

另一个大问题是,为什么我需要在库中指定清单值,而清单值只在库中使用?为什么不在内部使用它,让developes没有这个问题呢



进入你的主清单文件

我认为这不是对播放资源的尊重,因为你对aar没有短暂的依赖。您正在使用仅工件符号()导入自己的
aar
。如果希望依赖项是可传递的,则必须显式地将它们设置为可传递的(就像在库构建文件中所做的那样)

dependencies {
    compile(group: 'com.myapplib', name: 'myapplib', version: '1.0.3', ext: 'aar')  {
        transitive = true;
    }
}
库可能无法正常工作。请再次尝试从extras/google/google\u play\u服务添加库,然后添加到清单文件中,可能有助于此:

但您没有提到google play services版本。 创建一个xml文件(即version.xml)


你的版本在这里
还加

 <meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />


在清单文件中。

将Google Play services添加为Android库项目。它已添加为库的com.Google.Android.gms:Play services地图:7.5。0@aar'依赖项{compile'com.google.android.gms:play services gcm:7.5.0'}哦,伙计,删除了你的crashlytics api密钥bud,不想有人弄乱你的崩溃数据!这太容易了。这个变量在应用程序中不可见。实际上我尝试了这个,但它不起作用。但你迫使我朝正确的方向思考。问题是库aar的pom.xml文件不完整,存储在我的私有repo中。它只有abo的数据ut版本、组和名称,没有依赖项。我不知道为什么,但它是由Gradle生成的。所以我尝试在pom.xml中手动添加依赖项,这真的很有帮助。这个问题已经解决了,但现在我应该找到一种方法为库生成正确的pom.xml
apply plugin: 'com.android.application'

apply plugin: 'io.fabric'

android {
    compileSdkVersion 15
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 15
        targetSdkVersion 22
    }
}

dependencies {
    compile(group: 'com.myapplib', name: 'myapplib', version: '1.0.3', ext: 'aar')    
}
    <meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
dependencies {
    compile(group: 'com.myapplib', name: 'myapplib', version: '1.0.3', ext: 'aar')  {
        transitive = true;
    }
}
May be library not work properly. Try to add your library from extras/google/google_play_services again and then add in your manifest file  May be help this one :

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
   <?xml version ="1.0" encoding = "utf-8"?>
   <resources>
   <integer name ="google_play_services_version">your_version_here</integer>
   </resources>
 <meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />