Cordova 5.0.0を使用してAndroidアプリを開発し始め(cordova -vは5.0.0を出力)、Android 4.1.2を使用してMoto Razr D1でテストします。 Windows 7では、ところで。
cordova build
また、platforms/Android/build/output/apk/Android-degug.apkを手動でSDにコピーし、インストールを正常に実行します。
cordova emulate Android
Androidバージョン> 4.1.2のエミュレーターで正常に動作します
cordova run Android
正常にビルドすると、apkプラットフォーム/Android/build/output/apk/Android-debugger.apkを使用して、アプリのインストール、起動、起動の成功がわかります。ただし、このスクリーンショットでわかるように
この「壁紙/管理/設定」が起こり、それだけです。
私が実行した場合:
cordova emulate Android
Android 4.1.2 Jellyを使用したエミュレーターで、等しい出力
BUILD SUCCESSFUL
Total time: 6.352 secs
Built the following apk(s):
C:\Android\Some\platforms\Android\build\outputs\apk\Android-debug.apk
Installing app on emulator...
Using apk: C:\Android\Some\platforms\Android\build\outputs\apk\Android-debug.apk
Launching application...
LAUNCH SUCCESS
同じ「WALLPAPAER/MANAGE/SETTINGS」、別のスクリーンショットがあります Emulator Screenshot
この問題を解決する方法はありますか?前もって感謝します...
PS:以前にapkをインストールした場合、RazrはWALLPAPER/MANAGE/SETTINGSの代わりに古いバージョンを起動します。したがって、コルドバの実行コマンドを実行する前に、アンインストールする必要があります。
私は同じ問題に遭遇しました( Cordova "hello world"アプリは表示されません )、それを通り抜ける方法を見つけました(しかし、根本的な原因を本当に理解していません)。
Apkのインストール時に問題が発生したようです。 Cordova 5.0.0では、apkをインストールするためのadbコマンドは、ファイルplatform\Android\cordova\lib\device.jsの行101(およびcordovaのplatform\Android\cordova\lib\emulator.jsの行311にあります) Androidをエミュレート):
adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"
現在のコマンドが返されます: "エラー:不明なオプション-d"!
単に「-d」オプションを削除すると、アプリケーションはcordovaで正常に実行され、Androidが実行されます。
-d
は、adb
の直後に来ることになっています(--device
)インストール後ではなく。したがって、削除する代わりに、そこに移動するだけです。
知らなかった場合に備えて、チェックして注意することがいくつかあります。
cordova -v
は、プラットフォームバージョンcordova platform
と必ずしも一致しませんCordova-Android SDKの最新バージョンに更新した場合は、releasenotes.mdを必ずお読みください: https://github.com/Apache/cordova-Android/blob/master/RELEASENOTES.md
SDが何なのかわかりませんが、次の方法でアプリをインストールしました
adb install <path_to_apk>
アップロードしたapkをデバイスと比較して確認した後(エミュレータよりもデバッグが簡単だと思います)、 Android Debug Bridge with logcat を起動します:
adb -d logcat
エミュレータを介してlogcatを使用してデバッグする場合、次のようにします。
adb -e logcat
ここに冗長性を減らすための追加のデバッグフラグがあります: http://developer.Android.com/tools/debugging/debugging-log.html 。 adb logcat ActivityManager:I MyApp:D *:S
など、好きなようにフィルター仕様を調整する必要があります。 adb logcat *:D
を使用して、ほぼすべてのデバッグメッセージをキャプチャすることを好みますが、冗長性をわずかに減らします。
うまくいけば、logcatの接続と起動時に、問題を引き起こすためにどのエラーが起こっているのかをキャッチできるようになります。
EDIT:以下に、chromeブラウザ開発者ツールを介してデバイスのデバッグを行う別の方法を示します。 https:// developer.chrome.com/devtools/docs/remote-debugging
一般に、ここに上記のリンクからの手順があります。
要件:Chrome 32以降、接続するUSBケーブルAndroidデバイス、ブラウザのデバッグにはAndroid 4.0+、アプリデバッグには、Android 4.4+
上記のリモートデバッグリンクには、ライブスクリーンキャスト、プロキシセットアップ、ポート転送、仮想ホストマッピングに関する詳細情報があります。
Cordova 6.1.1を使用していて、アプリを開かない/インストールしないという同様の問題を抱えている人にとっては、ionic emulate Android
を1回開いてAndroidエミュレータをホーム画面で開きます。その後、別のターミナルウィンドウで再度実行しますionic emulate Android
既に開いているエミュレータにアプリケーションをインストールし、すべてが正常に機能しました。
ここで同様の問題が見つかりました: https://forum.ionicframework.com/t/ionic-serve-works-correctly-ionic-emulate-Android-just-displays-Android-emulator-home-screen/53524/ 6
解決策は次のとおりです。emulator.js under platforms\Android\cordova\lib
行311に移動して、行をコメントアウトします。
// return exec('adb -s ' + resolvedTarget.target + ' install -r -d "' + apk_path + '"', os.tmpdir())
新しい行を貼り付けます
return exec('adb -s ' + resolvedTarget.target + ' install -r "' + apk_path + '"', os.tmpdir())
できます。
Device.jsとemulator.jsのコードを変更しても機能しませんでした(実際、cordova build Android
が機能しなくなるエラーが発生しました)。私の問題は完全に異なっていました:明らかに許可されていないAndroidManifest.xmlに2つの<application>
がありました。
線のどこかで、AndroidManifest.xmlに<application Android:debuggable="true" />
を追加しました。ただし、そのファイルalreadyには、次のような「application」要素がありました。
<application Android:hardwareAccelerated="true" Android:icon="@drawable/icon" Android:label="@string/app_name" Android:supportsRtl="true">
そこで、既存の<application>
に「デバッグ可能」行を追加しました(2番目の<application>
を削除しました)。
<application Android:debuggable="true" Android:hardwareAccelerated="true" Android:icon="@drawable/icon" Android:label="@string/app_name" Android:supportsRtl="true">
その後、cordova build Android
を使用して再構築し、cordova run Android
を使用してデバイス上で正常に実行し、手をたたいて犬を怖がらせました。
しかし、これがあなたの問題ではない場合でも、問題を発見した方法は次のとおりです。jojoの回答の指示に従い、デバイスを接続した状態でadb logcat
を実行しました。その端子タブは、途方もないがらくたですぐにいっぱいになりました。
次に、同時に表示できる新しいターミナルウィンドウを開き、logcat出力の最新のタイムスタンプに注意して、cordova run Android
を実行しました。画面はがらくたでいっぱいになり、物事が落ち着いたら、開始時間までスクロールして、1行ずつ確認しました。最終的に私は犯人を見つけました:
PackageParser: <manifest> has more than one <application>
お役に立てれば!
私にとって、このトリックは-dを削除することで完全に機能しました
しかし、私は電話に転送して初めてapk manullayをインストールする必要があり、その後Androidを実行してionicを使用してアプリを直接実行できました
これが誰かを助けることを願って
シンプルを使用してみてください-
cordova run anroid
接続されたデバイスがない場合は、「ターゲットが指定されておらず、デバイスが見つかりません、エミュレータにデプロイしています」と表示され、エミュレータが起動します。