2

그래도 무슨 일이 일어 났는지 모르겠지만, 3.0.0 rc2로 이동 한 후 내 응용 프로그램 모듈은 끝점 모듈에서 생성 된 클라이언트 라이브러리를 인식하지 못합니다.끝점 클라이언트 라이브러리가 인식되지 않습니다.

빌드가 한 가지 예외로 모든 문제를 해결할 수 있습니다. 새 API가 빌드에서 선택되지 않습니다. 여기

내 응용 프로그램 모듈의 Gradle을 파일의 종속 섹션의 :

dependencies { 
// Gradle dependency check...must be run in the project directory 
// ./gradlew -q dependencies app:dependencies --configuration compile 

implementation fileTree(include: ['*.jar'], dir: 'libs') 
implementation project(path: ':backend', configuration: 'android-endpoints') 

업데이트 : 전쟁/jar 파일이 지속적으로 백엔드에서 업데이트되고있는 것으로 나타났습니다

/구축/libs 및 zip 파일은 백엔드/build/client-libs에서도 업데이트됩니다.

업데이트 # 2 :

이 안드로이드 스튜디오 3.0 발생합니다.

업데이트 # 3 : 분명히, 이것은 3.0 알려진 버그가 here

업데이트 # 4 다음은 무엇 Google 팀의 제안이다를 참조 RC2,하지만 난 그것이 작동 점점 아무 생각이 없습니다. 누군가?

//In library module: 

dependencies { 
    api fileTree(include: ['*.jar'], dir: 'libs') 
} 

Gradle을 파일 참조 :

프로젝트 수준 :

buildscript { 
repositories { 
    jcenter() 
    google() 
} 
dependencies { 

    // 2.0 
    classpath 'com.google.guava:guava:22.0' 
    classpath 'com.android.tools.build:gradle:3.0.0' 

    // NOTE: Do not place your application dependencies here; they belong 
    // in the individual module build.gradle files 
} 
} 

allprojects { 
repositories { 
    jcenter() 
} 
} 

task clean(type: Delete) { 
delete rootProject.buildDir 
} 

엔드 포인트 (백엔드) 수준 :

buildscript { 
repositories { 
    mavenCentral() 
    jcenter() 

} 
dependencies { 
    // V2: Add the new App Engine and Endpoints Frameworks plugin dependencies 
    classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.2' 
    classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.3' 

} 
} 

repositories { 
mavenCentral() 
jcenter() 
} 

apply plugin: 'java' 
apply plugin: 'war' 

// V2: Apply new App Engine and Endpoints Framework server plugins 
apply plugin: 'com.google.cloud.tools.appengine' 
apply plugin: 'com.google.cloud.tools.endpoints-framework-server' 

sourceCompatibility = JavaVersion.VERSION_1_8 
targetCompatibility = JavaVersion.VERSION_1_8 

dependencies { 
// V2: Endpoints Framework v2 migration 
implementation 'com.google.endpoints:endpoints-framework:2.0.8' 

testImplementation 'junit:junit:4.12' 
testImplementation 'com.google.appengine:appengine-testing:1.9.59' 
testImplementation 'com.google.appengine:appengine-api-stubs:1.9.59' 

// 2.0 
//implementation group: 'com.google.endpoints', name: 'endpoints-framework', version: '+' 

implementation group: 'com.googlecode.junit-toolbox', name: 'junit-toolbox', version: '1.5' 

implementation 'com.googlecode.objectify:objectify:5.1.21' 
implementation 'org.json:json:20151123' 
implementation 'javax.servlet:servlet-api:2.5' 
implementation 'org.apache.httpcomponents:httpclient:4.5.2' 
implementation 'com.ganyo:gcm-server:1.0.2' 
implementation 'com.google.appengine.tools:appengine-gcs-client:0.4.4' 
implementation 'com.google.apis:google-api-services-storage:v1-rev66-1.21.0' 
implementation 'com.google.api-client:google-api-client:1.23.0' 
implementation 'com.google.http-client:google-http-client-android:1.23.0' 

// I think this can be deleted 
//implementation 'commons-fileupload:commons-fileupload:1.3.1' 


} 

appengine { 
// All commented out due to v2 
//downloadSdk = true 
/*appcfg { 
    oauth2 = true 
}*/ 
/*endpoints { 
    getClientLibsOnBuild = true 
    getDiscoveryDocsOnBuild = true 
    googleClientVersion = '1.23.0' 
}*/ 

//httpAddress = "0.0.0.0" 


} 

// 2.0 - optional 
endpointsServer { 
// Endpoints Framework Plugin server-side configuration 
hostname = "mickey-mouse-pooh.appspot.com" 
} 

응용 프로그램 수준 :

apply plugin: 'com.android.application' 

// V2: Apply the new Endpoints Framework client plugin 
apply plugin: 'com.google.cloud.tools.endpoints-framework-client' 

buildscript { 
repositories { 
    jcenter() 
} 
dependencies { 
    // V2: Add the new Endpoints Framework plugin dependencies 
    classpath 'com.google.cloud.tools:endpoints-framework-gradle- 
plugin:1.0.2' 
} 
} 

android { 
compileSdkVersion 26 
buildToolsVersion '26.0.2' 
defaultConfig { 
    applicationId "com.inneraries.projectboon" 
    minSdkVersion 20 // before to update 
    targetSdkVersion 26 
    android.compileOptions.sourceCompatibility 1.8 
    android.compileOptions.targetCompatibility 1.8 
    versionCode 112 
    versionName 'Phoenix' 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
productFlavors { 

} 
compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
} 
} 

repositories { 
jcenter() 
maven { 
    url "https://maven.google.com" 
} 
} 

dependencies { 
// Gradle dependency check...must be run in the project directory 
// ./gradlew -q dependencies app:dependencies --configuration compile 
implementation fileTree(include: ['*.jar'], dir: 'libs') 

// V2 
endpointsServer project(path: ':backend', configuration: 'endpoints') 

// the "force" element is in place to avoid the conflict from the Facebook SDK 4.36.0 which is 
// using 25.3.1 Android SDK 
api('com.android.support:appcompat-v7:26.1.0') { 
    force = true 
} 
api('com.android.support:design:26.1.0') { 
    force = true 
} 
// For enabling Google app invite 
api 'com.google.firebase:firebase-invites:11.4.2' 

api 'com.google.android.gms:play-services-plus:11.4.2' 
api 'com.google.android.gms:play-services-auth:11.4.2' 
api 'com.google.android.gms:play-services-identity:11.4.2' 
api 'com.google.android.gms:play-services-location:11.4.2' 
api 'com.google.android.gms:play-services-gcm:11.4.2' 
api 'com.facebook.android:facebook-android-sdk:4.27.0' 

api 'com.google.api-client:google-api-client:1.23.0' 
api 'com.google.http-client:google-http-client-android:1.23.0' 
} 

// this is to avoid this error 
// Warning:Conflict with dependency 'com.google.code.findbugs:jsr305'. 
// Resolved versions for app (1.3.9) and test app (2.0.1) differ. 
configurations.all { 
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9' 
} 
+0

Google에서 예상되는 해결 날짜가 있습니까? 또한이 문제가 gradle 동기화 문제인지 확인했습니다. – m121212

+0

아직 없지만 최신 업데이트를 얻을 때마다이 소식을 계속 업데이트합니다. 나는이 문제에 대한 링크도 공유 했으므로 자신을 모니터하고 싶다면 자유롭게 느낀다. :) –

+1

임시 수정으로 나는 백엔드/빌드/libs에서 애플 리케이션 모듈의 libs에 백엔드 - android - endpoints.jar을 수동으로 추가하고있다. –

답변

1

2017 년 11 월 1 일 현재 Google의 광고 문안은 다음과 같습니다. Upgrade the framework to v2.

  1. 수동으로 클라이언트 라이브러리를 구축하고이를 통해 복사

    는 또한 (관리자가이처럼하지 않을 수 있습니다) 몇 가지 해결 방법을 제공했다. [gradle 작업 사용 : appengineEndpointsGetClientLibs]
  2. 미리 만들어진 병을 내 보낸 다음 복사합니다.[Gradle을 사용하여 작업 : appengineEndpointsExportClientLibs] 참고 : 2와 3는 동안, 다른 메커니즘을 사용하여 새로운 플러그인을 사용하는

  3. 시도 안드로이드 응용 프로그램에서 직접 구글-API 클라이언트-lib에 종속성을 추가 당신이 필요합니다 자동이 안드로이드 Studio의 UI와 을 통합하지 않습니다, 프로젝트에 소스를 추가 않습니다 - 그래서 당신은 실행 및 배포 공구 직접 Gradle을/명령 줄을 사용해야합니다 : https://github.com/GoogleCloudPlatform/endpoints-framework-gradle-plugin/blob/master/ANDROID_README.md

I을 내게 제공하다 참조가 필요한 경우에 대비하여 문제 설명에 파일을 수정하십시오.

1

지난 10 일 동안이 문제를 조사했으며 이것이 내가 이해 한 것입니다. 첫 번째 소개 이후 Android Studio에 통합 된 엔드 포인트 개발에 대한 Google의 철학이 바뀌 었습니다. 사실, Android Studio 3는 Endpoint에 기본 지원을 제공하지 않습니다 (사실, 더 이상 엔드 포인트 모듈을 추가 할 수 없습니다). 기본적으로 백엔드 개발 (모든 플랫폼에서 일반적이어야 함)과 클라이언트 측 개발을 분리하려고합니다. 따라서 IntelliJ에서 백엔드를 개발하고 생성 된 라이브러리를 'lib'폴더 (프로젝트 생성시 기본 폴더)에 가져 오는 것이 좋습니다. IntelliJ 전용 엔드 포인트 배포 도구도 제공합니다 (https://cloud.google.com/tools/intellij/docs/ 참조).