Android : APK 설치 중 오류
에서 몇 가지 간단한 작업을 천천히 시도하고 Android Studio
있습니다. 다음 앱은 오류없이 에뮬레이터에 설치됩니다. 그러나 실제 장치 Redmi 3S에 설치하려고 할 때이 오류가 발생했습니다.
Unknown failure (Failure - not installed for 0)
Error while Installing APKs
여기에서 비슷한 질문을했지만이 경우 디버깅이 활성화되지 않았거나 앱 설치에 액세스하지 않아 오류가 발생했습니다. 그러나 디버깅을 허용 하고 Studio에 다른 앱 을 설치하려고 시도했지만 정상적으로 작동했습니다 .
그래서 질문은 아마도 코드에 무엇이 잘못되었는지 일 것입니다.
MainActivity.java
package tlacitko.button;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view) {
new Thread(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
URL url = new URL("http://147.32.186.51:8080");
// HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(is));
String s = "";
}catch(MalformedURLException ex){
}catch(IOException e){
}
}
});
}
}).start();
}
}
그리고 xml 코드 :
activity_main.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Try to connect the server."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="7dp"
android:layout_marginTop="16dp"
android:onClick="sendMessage"
android:text="Conncect"
app:layout_constraintLeft_toRightOf="@+id/editText"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
문제를 극복하려면 다음 단계를 따르십시오.
- 시스템에 연결된 모든 장치를 분리하고 시스템에서 실행중인 모든 에뮬레이터를 닫습니다.
- 설정에서 Instant Run 기능을 끕니다.
- 클린 빌드를 수행하십시오.
- 설정에서 즉시 실행 기능을 켭니다.
- 클린 빌드를 수행하십시오.
- 장치를 연결하고 에뮬레이터를 시작하고 온라인 상태인지 확인하십시오.
- 장치 / 에뮬레이터를 선택하여 프로젝트를 실행하십시오.
노트 :
1) 시스템에서 실행되는 Android Debug Bridge (adb)의 다른 인스턴스가 없어야합니다.
2) Genymotion을 사용하는 경우 Android Studio 설정에서 언급 한 Genymotion 설정에 언급 된 사용자 지정 SDK 경로를 사용하는지 확인하십시오.
이 단계로 문제를 해결할 수 있지만 Android 버전에서도 문제가 될 수 있습니다.
Android Studio에서 Instant Run을 끕니다. 아래 단계를 따르십시오.
-
파일 >> 설정 >> 빌드, 실행, 배포.
Instant Run을 클릭 하고 " Enable Instant Run to hot swap code / resource changes on deploy "를 선택 해제합니다.
" 적용 "및 " 확인 "을 클릭하십시오 .
응용 프로그램을 다시 실행 해보십시오. 지금 앱을 설치해야합니다. 언제든지 Instant Run을 다시 활성화 할 수 있습니다.
수정 (Android Studio 3.0)
Instant Run 비활성화 ( Android 문서 )
Instant Run을 비활성화하려면 :
- 설정 또는 기본 설정 대화 상자를 엽니 다 . (Mac의 경우 Android Studio- > Preferences )
- 이동을하는 , 실행, 배포 빌드 > 인스턴트 실행을 .
- Enable Instant Run 옆의 확인란을 선택 취소합니다 .
Redmi 및 Mi 장치의 경우 MIUI 최적화를 끄고 전화기를 재부팅하십시오.
설정> 추가 설정> 개발자 옵션> MIUI 최적화
나를 위해 방금 앱을 정리 하면 모든 것이 잘 작동합니다.
나는 이제이 문제에 직면 해 이미 apk를 제거했으며 이제 Android Studio 3.0을 사용하여 Xiaomi MIX 2 (Android 7.1.1, API 25)로 apk를 실행하고 싶지만 실패했습니다.
$ adb shell pm install -t -r "/data/local/tmp/com.package"
Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
그리고 Android Studio는 "이 문제는 기존 버전의 apk가있는 경우 제거하고 다시 설치하여 해결할 수 있습니다."라고 말합니다. 하지만이 apk를 제거했습니다.
그리고 "확인"버튼을 클릭했지만 실패했습니다.
$ adb shell pm uninstall com.package
Unknown failure (at android.os.Binder.execTransact(Binder.java:565))
Error while Installing APK
마지막으로이 문제를 해결하는 방법을 찾았습니다. "USB를 통해 앱 확인"을 설정하지 않습니다. 이제이 장치는 xiaomi 계정에 로그인 할 때까지이 장치를 켤 수없고 로그인되지 않은 새 장치이기 때문입니다.
1 단계 : "설정"으로 이동 → 시스템에서 "개발자 옵션"을 찾아 클릭합니다.
2 단계 : Debbuging 섹션에서 'Verify apps over USB' 를 사용 설정합니다.
3 단계 : Android Studio에서 "앱 실행"을 다시 시도하십시오!
위의 제안을 모두 시도하기 전에 기기에서 사용 가능한 충분한 메모리 공간을 확인하세요 . 이것은 또한이 문제의 원인이됩니다.
오류 : android.os.ParcelableException : java.io.IOException : 내부 용으로 만 요청되었지만 공간이 충분하지 않습니다.
해피 코딩 :)
즉시 실행되는 Xiaomi
Android 스튜디오 버전 2.3
및 gradle 플러그인 버전의 기기 와의 호환성 일 수 있습니다 2.3.0
.
adb multiple-install
분할 된 APK가 오류를 반환합니다.
즉시 실행을 끄거나 Settings
-> Developer options
에서 Turn on MIUI optimization
즉시 실행을 원하는 경우 끌 수 있습니다.
장치 저장 공간이 가득 찼을 수 있습니다. 물리적 장치에서 테스트하는 경우. 그러나 에뮬레이터에서 테스트하는 경우 저장소 공간이 사용 가능한지 여부도 확인하십시오. 그렇지 않으면 Instant Run을 꺼야합니다.
나는 프로젝트를 청소 하고이 문제를 해결했습니다.
빌드-> 클린 프로젝트.
나는 같은 문제가 있었지만 내 문제는 장치의 공간 부족이었습니다.
장치에서 설정-> 장치 유지 관리-> 지금 최적화로 이동하십시오.
완료되면 다시 시도하십시오.
Instant Run 을 다시 확인하려면 다음 단계를 따르십시오 .
- 파일 >> 설정 >> 빌드, 실행, 배포.
- Instant Run을 클릭하고 "배포시 핫 스왑 코드 / 리소스 변경을 위해 Instant Run 활성화"를 선택 해제합니다.
- "적용"및 "확인"을 클릭하십시오.
그러나 때때로 재확인이 작동하지 않습니다.
그 때 WIN PC에서 배포를 실행하는 경우 AntiVirus 및 Windows Defender 를 일시적으로 비활성화 해야합니다.
다음 단계를 따르십시오.
- 15/30 분 동안 바이러스 백신 또는 Windows Defender 비활성화
- 클린 빌드를 수행하십시오.
- 프로젝트 재 구축
- 에뮬레이터 또는 장치에서 프로젝트 실행
노트 :
- \ app \ build \ intermediates \ split-apk \ debug \ slices \ slice_5.apk 일부 맬웨어가 영향을받습니다.
새 장치에 앱을 설치할 때도 동일한 문제가 발생했습니다. 이 오류는 일반적으로 OS에서 앱 설치를 허용하지 않을 때 발생합니다. 어떤 소스에서든 휴대 전화에 앱을 설치할 권한이 없기 때문일 수 있습니다.
따라서 allow install apps via usb
개발자 옵션을 확인하십시오 . 그래도 작동하지 않으면 모든 항목을 취소 usb debugging authorizations
한 다음 설치를 시도하고 요청시 권한을 제공하십시오.
이것이 또한 절단되지 않으면 위의 답변 중 하나에 설명 된대로 즉시 실행을 비활성화하십시오.
장치에서 모든 응용 프로그램을 삭제할 수 있습니다.
Android Emulator를 사용하고 있습니다. 다음을 통해 앱을 삭제했습니다. 설정> 앱 및 알림> 앱 선택> 제거 .
Android Studio에서 Instant Run을 끕니다. 아래 단계를 따르십시오.
이전 버전의 Android Studio (
Version < Android Studio 3.0
) 파일 >> 설정 >> 빌드, 실행, 배포.클릭
Instant Run
하고 모두 UnckeckEnable Instant Run to hot swap code/resource changes on deploy
.를 클릭 Apply하고 OK.
응용 프로그램을 다시 실행 해보십시오. 지금 앱을 설치해야합니다.
Instant Run
언제든지 다시 활성화 할 수 있습니다 .신규 (
Android Studio 3.0
)의 경우 인스턴트 실행 비활성화 (기본값)
Instant Run을 비활성화하려면 :
열기
Settings
또는Preferences dialog
. (Mac의 경우 Android Studio-> 환경 설정)로 이동합니다
Build, Execution, Deployment > Instant Run
.Enable Instant Run 옆의 확인란을 선택 취소합니다.
프로젝트를 정리하고 응용 프로그램을 다시 실행 해보십시오.
install
이제 앱 이어야 합니다.enable Instant Run
언제든지 다시 할 수 있습니다 .
분리 divice을 시스템에서와에서 안드로이드 스튜디오 로 이동하여 파일 -> 무효화 캐시 및 / 다시 시작합니다 . 효과가있다....
간단하고 정확한 답변 ...
다음과 같이 Instant Run을 선택 취소합니다 ...
단계 : file >> Settings >> Build, Execution, Deployment >> Enable Instant Run to hot swap code / resource changes on deploy (기본 활성화 됨)를 선택 취소합니다.
3 단계 : 프로젝트 실행 ...
ᄏ ᄏ ᄏ ᄏ ...
참조 URL : https://stackoverflow.com/questions/42781934/android-error-while-installing-apks
'programing' 카테고리의 다른 글
Guava를 사용하여 가능한 null 값을 기본값으로 변환하는 방법은 무엇입니까? (0) | 2021.01.16 |
---|---|
쉼표와 포인트를 사용하여 문자열을 이중으로 구문 분석 (0) | 2021.01.16 |
NSDate를 가장 가까운 5 분으로 반올림 (0) | 2021.01.16 |
양식 요소에서 탭 포커스 비활성화 (0) | 2021.01.16 |
for 루프에서 ++ i 또는 i ++ ?? (0) | 2021.01.16 |