Renderscript Support Library를 사용하는 App에서 작업하고 있습니다. 개발 용 Android Studio 0.5.4 및 Gradle 1.11이 사용됩니다. RenderScript 지원 라이브러리가있는 IllegalAccessError
내가이 2.3과 4.4.2에서 작동android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 10
targetSdkVersion 19
renderscriptTargetApi 19
renderscriptSupportMode true
}
}
를 사용 renderscript을 구성합니다.
첫 번째 화면이 끝나면 몇 가지 테스트를 작성하여 문서화하고 싶습니다. Atm ActivityUnitTestCase를 테스트의 조상으로 사용합니다 .. 내 테스트 코드는 src/androidTest/java에 있으며, Android Studio는 src 디렉토리로 식별됩니다. 실제 장치를 사용하여 테스트 케이스를 성공적으로 시작할 수도 있습니다. 테스트 케이스 자체는 단지 몇 가지 뷰의 존재를 확인합니다. 시험 때문에 실패 그러나 : 스택 추적에서 더 아래로
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
나는 그것의 바로 처음 renderscript 호출하기 전에 트리거 것을 알 수있다. 생성 된 (난독 화되지 않은) apk 내부를 살펴보면 Instrumentation Test apk에 android.support.v8.renderscript 패키지가 포함되어 있음을 알 수 있습니다.
테스트중인 apk와 테스트에 모두 렌더 스크립트 패키지가 포함되어 있으므로 예외가 발생합니다.
내 질문 : 어떻게 방지합니까?
여러 라이브러리를 사용하며 테스트 apk에 나타나지 않습니다. renderscript 라이브러리는 dex 파일과 공유 객체를 모두 사용합니다. 나는 가정의 등 nineoldandroids 같은 라이브러리를 다르게 처리한다는 깊은 고유의 복잡성에 그것으로 인해
내 구글 - 푸 그들 중 하나가 또한 inheritent 문제를 언급 http://www.sinking.in/blog/android-dependency-double-trouble/ 되고, 유일한 해결 방법이 있다는 것을 밝혀http://issues.gradle.org/browse/GRADLE-784
그러나 여기에 언급 된 수정 사항 중 일부는 렌더 스크립트 lib에도 적용되지 않습니다.
모든 힌트에 감사드립니다. 고맙습니다.
당신이 템플릿 https://android.googlesource.com/platform/tools/build/+/2e1f7810edd76d92cee8d3e06bc4dec0c288adea/tests/rsSupportMode/build.gradle으로 다음 Gradle을 조각을 사용하는 경우는로드해야 해달라고 작동 네이티브 부분의 코드에서는 라이브러리가이를 수행하고 gradle은 mips, arm 및 x86에 대한 맛을 추가합니다. 그리고 그것들을 (또한 기본적으로) 만듭니다. 필자는 x86 에뮬레이터와 암 장치에서이를 테스트했습니다. arm5/6 지원이 없기 때문에 arm7이 아니라 arm이 아닌 abi 필터를 설정했습니다. –