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.** { *; } 

所以无论哪个答案最适合你。