0

오류없이 잘 작동 컨텐츠 제공 기관의 원래 이름 :문자열 길이 오류

:

public static final String AUTHORITY = com.dakotastream.cardiologger.CardioLoggerProvider12;


내가 내 권한의 이름을 변경하려면

public static final String AUTHORITY = com.dakotastream.cardiologger.CardioLoggerProvider; 

위의 이름으로 변경하면이 오류가 발생합니다.

발생 원인 : java.lang.StringIndexOutOfBoundsException : length = 68; 인덱스 =

public static final String AUTHORITY = com.dakotastream.cardiologger.CardioLoggerProvider1; 

나는이 오류가 위에 이름을 변경 70


.

발생 원인 : java.lang.StringIndexOutOfBoundsException : length = 69; 인덱스 = 70


내가 com.dakotastream.cardiologger12에 패키지의 이름을 변경하면, 나는 오류없이

public static final String AUTHORITY = com.dakotastream.cardiologger12.CardioLoggerProvider; 를 사용할 수 있습니다.


기관은 69자를 초과하는 문자열 길이를 요구합니다. 내가 SDK 도구 22.6.3, API (19), ABS 라이브러리 4.4.0

나는 새로운 안드로이드 응용 프로그램 프로젝트를 만들고있는 코드를 삭제 노력했다. 나는이 같은 오류를 사용하고

.


전체 로그 캣 덤프 :

나는 안드로이드 도구를 사용하여 이클립스에서
FATAL EXCEPTION: ModernAsyncTask #1 
Process: com.dakotastream.cardiologger, PID: 1344 
java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.support.v4.content.ModernAsyncTask$3.done(ModernAsyncTask.java:137) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.lang.StringIndexOutOfBoundsException: length=68; index=70 
at java.lang.String.indexAndLength(String.java:584) 
at java.lang.String.substring(String.java:1449) 
at com.dakotastream.cardiologger.DbContentProvider.query(DbContentProvider.java:279) 
at android.content.ContentProvider.query(ContentProvider.java:857) 
at android.content.ContentProvider$Transport.query(ContentProvider.java:200) 
at android.content.ContentResolver.query(ContentResolver.java:461) 
at android.content.ContentResolver.query(ContentResolver.java:404) 
at android.support.v4.content.CursorLoader.loadInBackground(CursorLoader.java:49) 
at android.support.v4.content.CursorLoader.loadInBackground(CursorLoader.java:35) 
at android.support.v4.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:242) 
at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:51) 
at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:40) 
at android.support.v4.content.ModernAsyncTask$2.call(ModernAsyncTask.java:123) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 

> 이름 바꾸기 응용 프로그램 패키지의 이름을 변경합니다. 이름을 변경하면이 오류가 발생합니다.

+1

DbContentProvider.java 줄의 내용 279? – pskink

+0

@Override \t public boolean onCreate() { \t \t mOpenHelper = new DbHelper (getContext()); \t \t return true; \t} – moberme

+1

문자열 # substring()이 호출되어야합니다 ... 스택 추적을 참조하십시오. – pskink

답변

0

매니페스트의 공급자에 따라 android : authorities 태그를 업데이트하십시오.

+0

pskink가 내 문제를 해결했습니다. 로그 문은 하위 문자열 호출을 사용했습니다. 당신의 노고에 감사드립니다. – moberme