0

私はgraphhopperルーティングライブラリを使ってアンドロイドアプリケーションを開発しました。ライブラリはデバッグモードまたはapp-debug.apkでうまく動作しますが、アプリケーションのリリースAPKを作成するとライブラリは動作しません。それは私に与えているjava.lang.IllegalStateException:クラスパスに入力ストリームが見つかりません!は次のコードの実行時に例外となります。GraphhopperはリリースAPKで動作しません。

/* 
*Constants.ROUTE_FILE_PATH = Environment.getExternalStorageDirectory().getPath()+"/.myappfolder/routes"; 
*/ 
File routingFiles = new File(Constants.ROUTE_FILE_PATH); 
GraphHopper tmpHopp = new GraphHopper().forMobile(); 
tmpHopp.load(routingFiles.getAbsolutePath()); 

リリースAPKを作成している間、私はgraphhopperライブラリのいくつかの警告を持って、proguard-rules.proファイルに

-dontwarn com.graphhopper.** 

を使用して警告を削除。

graphhopperプロジェクトのリリースapkの作成に問題はありますか? apkのリリース版でライブラリが動作しないのはなぜですか?

答えて

0

私はこの問題に2つの答えを見つけました。

まず、あなたはbuild.gradle

minifyEnabled false 

を設定することができます。これは解決策としても機能しますが、あなたのアプリは縮小されません。

第二に、あなたがproguard-rules.pro

-keep class com.graphhopper.** { *; } 

を設定することができto the answer posted hereに従って。

あなたの答えはどちらにも最適です。

関連する問題