0

我開發了一個使用graphhopper路由庫的android應用程序。該庫在調試模式下或在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.** 

刪除的警告。

創建一個釋放apk的graphhopper項目有任何問題嗎? 爲什麼不能在APK的發行版中工作?

回答

0

好的,所以我找到了2個問題的答案。

首先,你可以在的build.gradle設置

minifyEnabled false 

。這也可以作爲解決方案,但是你的應用不會被縮小。

其次根據to the answer posted here可以在proguard-rules.pro設置

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

所以無論哪個答案最適合你。