Android Package * .APKをAVD(Android Virtual Device)にドラッグアンドドロップすると、不可解なエラーがスローされます。
The APK failed to install.
Error: Could not parse error string
不明なソースが許可されています
Android.api = 24
Android.minapi = 24
Android.sdk = 24
ただし、この同じAPKを実際のAndroidデバイスにアップロードすると、動作します!インストールするだけでなく、エラーなしでアプリを正常に開いて実行します
これは、エミュレーターのCPUアーキテクチャーと一致しないネイティブライブラリをアプリが使用しているためである可能性があることを示しています(これを参照してください question )
より詳細なエラーメッセージを取得するには、ターミナルからアプリをインストールします。
adb install path_to_your_app/name_of_your_app.apk
これを見るかもしれません:
adb: failed to install name_of_your_app.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries
現在インストールされているアプリよりも高いバージョンコードで新しいapkを作成する必要がありました。
私のシミュレータにはバージョン8があり、同じバージョンで新しいapkをインストールしようとしたときに、言及したエラーが発生したため、解決策はversionCodeを増やして新しいapkを生成することでした
Build.gradle(モジュール:アプリ)ファイルで行います
Android {
defaultConfig {
versionCode 9 <---
versionName "1.1.0"
...
}
...
}
別の解決策は、現在のアプリをアンインストールして新しいapkをインストールすることです
私は同じ問題に直面していました。問題は、エミュレータで同じアプリケーションが既にインストールされている with 同じバージョンである場合、更新/インストールされず、あなたと同じエラーがスローされることですそれを得る。
次の解決策を試して修正してください。
古いAPKをアンインストールする Emulatorから新しいAPKをドラッグアンドドロップすると、アプリケーションがインストールされます
@ Chuy47が示唆するようにBuild.gradleファイルからバージョン番号を変更し、新しいAPKをビルドしてインストールする
それが役に立てば幸い。
私にとっては、On Android 9(API 28)エミュレーターシステムイメージ、PlayストアアプリからGoogle Playプロテクトを無効にすると、トリックが機能し、解析エラーを取り除くことができました。
Google Playプロテクトを無効にします。 「Playストア」アプリケーションを開く=>メニューボタンをタップ=>「Playプロテクト」オプションを選択=>「セキュリティの脅威についてデバイスをスキャン」オプションを無効にします。
p4a
フラグを使用してarmeabi-v7a
を使用してapkを構築した後、自分でこの問題にかなり長い時間を費やした後、@ Melquiadesの回答で概説されているように、デフォルトのエミュレーターはx86
アーキテクチャを使用しているため、もちろん互換性がありません。
解決策は、x86
のapkをビルドすることです。これは、Archフラグ-p4a
を使用して、--Arch=x86
作成コマンドでapkを指定することで実行できます。ここで利用可能なオプションを見ることができます: https://github.com/kivy/python-for-Android/blob/master/pythonforandroid/archs.py
個人的に、python3crystax
ndkをarmeabi-v7a
以外のフラグで実行すると、適切なバイナリが見つかりませんでした。 python3とAndroid ndkを使用して実行すると、同様にすべてのアーキテクチャで失敗しました。
python3
を使用していて、すべてのアーキテクチャ用にビルドしたい場合は、buildozer
を使用できます。 python3crystax
要件でbuildozer.spec
を指定し、Android.ndk_path
行でndkディレクトリをリンクし、選択したアーキテクチャを行で指定します
# (str) The Android Arch to build for, choices: armeabi-v7a, arm64-v8a, x86
Android.Arch = x86
install python 3.5このチュートリアルの後に: https://tecadmin.net/install-python-3-5-on-ubuntu/ 。ダウングレードするか、現在の設定に応じて、cython
バージョンをアップグレードします。0.27、0.27.2はどちらもKivyでは動作しないことに注意してください。cython0.25.2が機能していることがわかりました。で選択:
Sudo pip3 install -U --force-reinstall cython=0.25.2
もちろん、Ubuntuで実行している場合:)
そして、あなたはそれを持っています。 buildozer.spec
のArch
オプションを変更し、各アーキテクチャに対してbuildozer Android debug
を実行することにより、異なるアーキテクチャ用に複数のapkを作成する必要があります。 Googleには複数のapkをアップロードするオプションがあるため、Playストアにリリースできます: https://developer.Android.com/google/play/publishing/multiple-apks 。
がんばろう; P
[〜#〜] edit [〜#〜]SDK 20 / API 26 / NDK 15c / Python 3.7
およびSDK 20 / API 24 / NDK 14b / Python 3.7
を使用するpython-for-Androidコマンドが機能します。私は後者を個人的にテストしていませんが、詳細についてはこちらをご覧ください python-for-Android post 。前者をテストした結果、動作することは確認できましたが、sqlite3
をサポートしていません。
次のことを行うと、それが修正されたようです。
buildozer.spec
でbuildozer SDK設定をコメントアウトします(デフォルトのSDKバージョンに戻します)(biuldozerはすべてのSDKをサポートしません)この問題を解決するには、apkファイルの名前を変更し、次のことを確認しました。
お役に立てば幸いです。
これは私のために働いた.....
そのアプリの最小SDKバージョンを確認できますか?そして、あなたの仮想デバイスAndroidバージョン
AVDバージョンは、アプリの最小SDKバージョン以上である必要があります
大きい場合は、USBデバッグを有効にしてみてください