1
나는이 안드로이드 라이브러리를 사용하기에 초보자입니다. 아래의 코드는 내 간단한 impelemented Retrofit 라이브러리입니다. 프로젝트를 실행 한 후 오류가 발생하지 않지만 프로젝트가 중단되고 나던가 작동합니다. 사용 개조 통화 기능 후내가 안드로메이트 응용 프로그램을 중단 할 때 Retrofit2
자세한 로그 캣 메시지 :
06-04 03:10:44.647 21694-21709/ir.pishguy.signalpresentationproject I/art: Background sticky concurrent mark sweep GC freed 196320(5MB) AllocSpace objects, 36(1935KB) LOS objects, 5% free, 85MB/90MB, paused 7.388ms total 52.997ms
06-04 03:10:44.802 21694-21704/ir.pishguy.signalpresentationproject W/art: Suspending all threads took: 26.926ms
06-04 03:10:44.844 21694-21709/ir.pishguy.signalpresentationproject I/art: Background sticky concurrent mark sweep GC freed 135992(3MB) AllocSpace objects, 31(1674KB) LOS objects, 5% free, 85MB/90MB, paused 6.324ms total 49.940ms
06-04 03:10:45.185 21694-21709/ir.pishguy.signalpresentationproject I/art: Clamp target GC heap from 101MB to 96MB
06-04 03:10:45.185 21694-21709/ir.pishguy.signalpresentationproject I/art: Background partial concurrent mark sweep GC freed 246201(7MB) AllocSpace objects, 59(3MB) LOS objects, 10% free, 85MB/96MB, paused 6.412ms total 212.381ms
06-04 03:10:45.185 21694-21694/ir.pishguy.signalpresentationproject I/art: WaitForGcToComplete blocked for 119.899ms for cause Alloc
06-04 03:10:45.476 21694-21709/ir.pishguy.signalpresentationproject I/art: Background sticky concurrent mark sweep GC freed 240528(6MB) AllocSpace objects, 48(2MB) LOS objects, 8% free, 86MB/94MB, paused 7.318ms total 54.547ms
06-04 03:10:45.476 21694-21694/ir.pishguy.signalpresentationproject I/art: WaitForGcToComplete blocked for 35.245ms for cause Alloc
06-04 03:10:51.268 21694-21702/ir.pishguy.signalpresentationproject I/art: Thread[5,tid=21702,WaitingInMainSignalCatcherLoop,Thread*=0xef60d400,peer=0x12c00080,"Signal Catcher"]: reacting to signal 3
06-04 03:10:51.603 21694-21702/ir.pishguy.signalpresentationproject I/art: Wrote stack traces to '/data/anr/traces.txt'
내 코드 :
SignalProvider
클래스 :
public class SignalProvider {
private SignalServices signalServices;
public SignalProvider(){
OkHttpClient httpClient = new OkHttpClient();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ClientSettings.SignalWebBaseUrl)
.client(httpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
signalServices = retrofit.create(SignalServices.class);
}
public SignalServices getServices(){
return signalServices;
}
}
SignalServices
인터페이스 클래스 :
public interface SignalServices {
@GET("storeLists")
Call<List<Store>> getStoreLists();
}
개
ClientSettings
클래스 :
public class ClientSettings {
public static final String SignalWebBaseUrl = "http://192.168.1.35/signal/public/";
}
하고 난이 방법으로 활동에서 그들을 사용하고 있습니다 :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initUI();
SignalProvider signalProvider = new SignalProvider();
SignalServices signalServices = signalProvider.getServices();
Store store = new Store();
Call<List<Store>> call = signalServices.getStoreLists();
call.enqueue(new Callback<List<Store>>() {
@Override
public void onResponse(Call<List<Store>> call, Response<List<Store>> response) {
}
@Override
public void onFailure(Call<List<Store>> call, Throwable t) {
}
});
}
프로젝트를 실행 한 후 어떤 분 후 내 응용 프로그램은
앱이 다운되면 실제 오류가 표시됩니다. –
@ cricket_007 예, 맞습니다. 불행히도 LogCat에서 충돌 후 오류가 표시되지 않습니다. –
글쎄,이 문제는 즉시 발생하지 않습니다. 여기서 메모리 충돌을 일으키는 유일한 원인은 서버가 응답 스트림을 닫지 않고 데이터를 무제한으로 읽는 경우입니다. –