2017-11-15 3 views
0

리소스 ID의 값을 찾으려고합니다. R 클래스를로드하는 첫 번째 단계는 실패합니다.Android JNI FindClass가 R.id를 찾지 못했습니다.

jclass rcl = (*env).FindClass("my/package/R$id"); 

rcl의 값은 NULL입니다. 시도했습니다

jclass rcl = (*env).FindClass("my/package/R/id"); 

null도 반환합니다.

MainActivity와 같은 다른 클래스를 찾는 것이 좋습니다. NDK15 사용. 무엇이 잘못 될 수 있습니까? 은 javap의

출력 : http://siara.cc/output.txt

편집 : 문제는 해결되었다

exception: java.lang.ClassNotFoundException: Didn't find class "my.package.R" on path: DexPathList[[zip file "/data/app/my.package-1/base.apk"],nativeLibraryDirectories=[/data/app/my.package-1/lib/arm, /system/fake-libs, /data/app/my.package-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib]] 
+0

'javap'은 무엇을 말합니까? – pskink

+0

@pskink .. pls 내가 위의 출력을 주어진 javap –

+0

R $ id.class에 대한 동일한 출력을 참조하십시오. 이상한 .. –

답변

0

: 내/패키지/R로 클래스 이름을 변경, 나는 아시아 개발 은행 로그에 다음과 같은 라인을 찾을 수 이런 프로 우드 규칙을 추가하면 다음과 같습니다.

proguard는 R 클래스도 난처 해합니다.

관련 문제