更新 2013 年 8 月 7 日: 問題は解決されましたが、エラーの理由はまったく予想外でした。そのようなエラーの通常の疑いはすべて開始時に排除され、新しいことを学びました。以下の私の答えを見てください。
私はここでかなり必死です。メソッドを呼び出す場所から、ネイティブ ライブラリを備えた Android アプリを作成します。私がテストしたすべてのシステムで問題はありませんでした。プログラムは問題の報告もなく Google Play に公開され、何千人ものユーザーが使用していました。現在、どうやら新しい ROM - Android バージョン 4.2.2 - HTC One 携帯電話用が出ています。ユーザーは、それが公式ビルドであり、公式チャンネルからアップグレードされたと主張しています. アプリを起動しようとするとクラッシュし、スタック トレースには次のように表示されます。
java.lang.UnsatisfiedLinkError: ネイティブ メソッドが見つかりません...
私が知っているメソッド名はそこにあり、Android 4.1がインストールされていた同じデバイスで少し前に正常に機能しました。エミュレーターで Android 4.2.2 でテストしましたが (この特定のデバイスはありません)、問題はありません。また、ユーザーはアプリのアンインストールと再インストールを試みましたが、結果は同じでした。ProGuard/Dexguard 保護なしでプライベート ビルドを送っても役に立ちません。
他に何が Android で java.lang.UnsatisfiedLinkError を引き起こす可能性がありますか? それとも、この HTC ROM は単にバグがあると考えるべきでしょうか??? Android 4.2.2 を搭載した HTC One で同様の問題が発生した人はいますか?
2013 年 7 月 24 日を編集
以下のコメントで、別の開発者が、システムが私のネイティブ ライブラリを見つけるのに問題がある可能性があることを示唆しています。セットアップからネイティブ ライブラリ ファイルを完全に削除して、Genymotion 4.2.2 エミュレーターで実験しました。この状況では、エラー メッセージが異なります。
W/System.err: 原因: java.lang.UnsatisfiedLinkError: ローダー dalvik.system.PathClassLoader から cld を読み込めませんでした[dexPath=/data/app/com.hyperionics.avar-2.apk,libra ryPath=/ data/app-lib/com.hyperionics.avar-2]: findLibrary が null を返しました
Android 4.2.2 の HTC One ユーザーから受け取ったスタック トレース メッセージに、次のエラー メッセージが表示されます。
原因: java.lang.UnsatisfiedLinkError: ネイティブ メソッドが見つかりません: com.hyperionics.avar.CldWrapper.detectLangNative:(Ljava/lang/String;)[Ljava/lang /String;
私には、システムが必要に応じて libcld.so ファイルを見つけているように見えますが、そこに必要なメソッドが見つかりません。どうして???メソッドがそこにあり、必要に応じてエクスポートされ、Android 4.2.2 を実行している他のすべてのデバイスとシステムがそれを見つけることを私は知っています。そこで失敗するのは、4.2.2 の HTC One だけです...
2013 年 7 月 25 日更新
50 担当者のバウンティを開始しました。私は HTC One を持っておらず、立ち往生しています。問題を解決する方法を示す回答を受け入れます。回答者は私のコード mod をテストします。それが機能することを示すために、またはこれが実際に HTC One の最近の Android 4.2.2 ROM のバグであることを証明します。問題のアプリはhttps://play.google.com/store/apps/details?id=com.hyperionics.avarです
2013 年 7 月 31 日更新
報奨金の最終日、まだ回答も提案もありません...これまでのところ、私が受け取るそのようなエラーレポートはすべてヨーロッパから来ており、報告されたブランドは「htc_europe」または「vodafone_fr」です。おそらく、エラーはヨーロッパ (フランス + ドイツ) のみにローカライズされています... HTC One と Android を 4.2.2 にアップデートした人がいる場合、他の国または他のプロバイダーでエラーが発生するかどうかに興味があります.
グレッグ