Добавить путь к библиотеке в Android.mk — google-play-services_lib

Я использую библиотеку google-play-services_lib для одного из своих проектов. В eclipse все красиво строится. Теперь я хочу написать файл Android.mk для автоматической сборки моего проекта.

Следуя инструкции здесь я добавил LOCAL_LDLIBS в Android.mk, поместив проект библиотеки google-play-services_lib в папку libs моего проекта, но это не работает.

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := GoogleReviews

LOCAL_LDLIBS := -L/libs/google-play-services_lib

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

include $(BUILD_MULTI_PREBUILT)

Поскольку библиотека не определяется правильно из Android.mk, во время компиляции я получаю следующие исключения, которые относятся к этим отсутствующим классам в google-play-services_lib библиотеке.

packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:36: package com.google.android.gms.auth does not exist
import com.google.android.gms.auth.GoogleAuthUtil;
                              ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:37: package com.google.android.gms.common does not exist
import com.google.android.gms.common.AccountPicker;
                                ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:38: package com.google.android.gms.common does not exist
import com.google.android.gms.common.ConnectionResult;
                                ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:39: package com.google.android.gms.common does not exist
import com.google.android.gms.common.GooglePlayServicesUtil;
                                ^
Copying: out/target/common/obj/JAVA_LIBRARIES/jp.co.sharp.android.model.orange_sh70f_intermediates/noproguard.classes.dex
target Jar: jp.co.sharp.android.model.orange_sh70f (out/target/common/obj/JAVA_LIBRARIES/jp.co.sharp.android.model.orange_sh70f_intermediates/javalib.jar)
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:110: cannot find symbol
symbol  : variable AccountPicker
location: class com.example.appreviews.ReviewScreen
        Intent intent = AccountPicker.newChooseAccountIntent(null, null,
                    ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:132: cannot find symbol
symbol  : variable GooglePlayServicesUtil
location: class com.example.appreviews.ReviewScreen
        int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
                 ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:134: cannot find symbol
symbol  : variable ConnectionResult
location: class com.example.appreviews.ReviewScreen
        case ConnectionResult.SUCCESS:
             ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:138: cannot find symbol
symbol  : variable ConnectionResult
location: class com.example.appreviews.ReviewScreen
        case ConnectionResult.SERVICE_MISSING:
             ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:141: cannot find symbol
symbol  : variable ConnectionResult
location: class com.example.appreviews.ReviewScreen
        case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
             ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:145: cannot find symbol
symbol  : variable ConnectionResult
location: class com.example.appreviews.ReviewScreen
        case ConnectionResult.SERVICE_DISABLED:
             ^
packages/apps/GoogleReviews/src/com/example/appreviews/ReviewScreen.java:261: cannot find symbol
symbol  : variable GoogleAuthUtil
location: class com.example.appreviews.ReviewScreen
            GoogleAuthUtil.invalidateToken(this, token);
            ^
11 errors

Что нужно сделать, чтобы я мог избавиться от этой ошибки.

Любая помощь горячо приветствуется.


person user264953    schedule 08.06.2013    source источник
comment
У кого-нибудь есть идеи по этому поводу?   -  person user264953    schedule 09.06.2013


Ответы (2)


Попробуй это:

LOCAL_STATIC_JAVA_LIBRARIES := libgoogleplay

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libgoogleplay: ваша библиотека Google Play

person anz    schedule 27.06.2013

Я использую NDK через VisualGDB.

То, как я, кажется, заставил его работать, добавляет в файл project.properties.

Я сделал то, что, по-видимому, предлагала документация Google для Android для сервисов Google Play, и скопировал ее из местоположения SDK в другое место (но не в каталог моего проекта). В то время он находился в {android-sdk}\extras\google\google_play_services\libproject

Я вручную отредактировал файл project.properties и добавил относительный путь (абсолютный путь не работал) в созданный мной каталог.

android.library.reference.1=<relative/path/to/my/google-play-services_lib>

(.1 — моя первая ссылка на внешнюю библиотеку)

Затем я следовал инструкциям SettingUpLibraryProject здесь: http://developer.android.com/tools/projects/projects-cmdline.html#SettingUpLibraryProject

Это привело к созданию набора файлов, необходимых процессам сборки. После этого все строилось нормально.

person RobGold    schedule 04.07.2014