1

ネイティブ サポートを備えた 2 つの Android プロジェクトがあります。つまり、Android プロジェクトと C++ プロジェクトの両方です。1 つは Android ライブラリ ( app-lib ) で、もう1 つはapp-lib に依存する Android アプリ( std-pos-app ) です。

次のようなapp-libの Android.mk ファイル:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := app-lib
LOCAL_SRC_FILES := ...
include $(BUILD_SHARED_LIBRARY)

ビルドすると、libs/armeabi フォルダーに libapp-lib.so が作成されます。

std-pos-appはapp-lib.soのネイティブ コードを呼び出します。したがって、 std-pos-appの Android.mk ファイルは次のようになります。

LOCAL_PATH := $(call my-dir)

#------------------
include $(CLEAR_VARS)
LOCAL_MODULE := app-lib1
LOCAL_SRC_FILES := path-to-libapp-lib/libapp-lib.so
include $(PREBUILT_SHARED_LIBRARY)
#------------------

include $(CLEAR_VARS)
LOCAL_MODULE    := std-pos-app
LOCAL_SRC_FILES := ...
include $(BUILD_SHARED_LIBRARY)

PREBUILT_SHARED_LIBRARYを使用して libapp-lib.soを事前ビルドします。std -pos-appがビルドされると、libapp-lib.so と libstd-pos-app.so が libs/armeapi に表示されます。しかし、 std-pos-appを実行したいときに、エラーが発生しました:

最終アーカイブの生成中にエラーが発生しました: APK の重複ファイルが見つかりました: lib/armeabi/libapp-lib.so

Androidプロジェクトの依存関係が原因で、それが起こる理由を知っています。しかし、それを解決する方法は?どうも。

4

1 に答える 1

0

同じ質問を説明する同様のスレッドを見つけました。そして、スレッドの解決策で問題を解決しました。Android で c と Java の両方の API を使用してライブラリ プロジェクトを使用する方法

于 2013-07-20T13:43:10.163 に答える