매번 서버 체크를 하지 않는 이상 방법이 없는 듯 합니다.
C쪽에서 특정 문자열을 RSA로 암호화 해두고, jni로 자바 API를 호출하여 어플의 퍼블릭키로 해당 문자열을 복호화 해야만 동작하게도 해봤는데 so를 변경해서 뚫어버리더라구요. (뚫리는데는 몇달 걸렸으며, 어지간한 해커는 자바쪽은 건드려도 C쪽 라이브러리는 잘 못 건드리니 해커님의 자비를 바라며 해 보시는 것도 좋습니다.)
그리고 프로가드가 적용 안되어 있다면 프로가드부터 적용하시기 바랍니다.