Hi,
I'm trying to follow this sample code https://developers.arcgis.com/net/latest/android/sample-code/featurelayergeopackage.htm#GUID-D49CFDE6-F2D0-4B8E-96AF-70259C8EFB63 but in JAVA, using this file https://www.arcgis.com/home/item.html?id=68ec42517cdd439e81b036210483e8e7.
When I try to get the feature layer (line 51) the list is empty. Did I do something wrong?
<SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>os<SPAN class="punctuation token">.</SPAN>AsyncTask<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>os<SPAN class="punctuation token">.</SPAN>Bundle<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>support<SPAN class="punctuation token">.</SPAN>v7<SPAN class="punctuation token">.</SPAN>app<SPAN class="punctuation token">.</SPAN>AppCompatActivity<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>widget<SPAN class="punctuation token">.</SPAN>LinearLayout<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>data<SPAN class="punctuation token">.</SPAN>FeatureTable<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>data<SPAN class="punctuation token">.</SPAN>GeoPackage<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>layers<SPAN class="punctuation token">.</SPAN>FeatureLayer<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>ArcGISMap<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>Basemap<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>view<SPAN class="punctuation token">.</SPAN>MapView<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> java<SPAN class="punctuation token">.</SPAN>io<SPAN class="punctuation token">.</SPAN>File<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">MainActivity</SPAN> <SPAN class="keyword token">extends</SPAN> <SPAN class="token class-name">AppCompatActivity</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">private</SPAN> MapView mapView<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">private</SPAN> <SPAN class="keyword token">final</SPAN> String filename <SPAN class="operator token">=</SPAN> <SPAN class="string token">"AuroraCO.gpkg"</SPAN><SPAN class="punctuation token">;</SPAN>
@Override
<SPAN class="keyword token">protected</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">onCreate</SPAN><SPAN class="punctuation token">(</SPAN>Bundle savedInstanceState<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">super</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">onCreate</SPAN><SPAN class="punctuation token">(</SPAN>savedInstanceState<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">createLayout</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">initialize</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">private</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">createLayout</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
LinearLayout linearLayout <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">LinearLayout</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
linearLayout<SPAN class="punctuation token">.</SPAN><SPAN class="token function">setOrientation</SPAN><SPAN class="punctuation token">(</SPAN>LinearLayout<SPAN class="punctuation token">.</SPAN>VERTICAL<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
mapView <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">MapView</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
linearLayout<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addView</SPAN><SPAN class="punctuation token">(</SPAN>mapView<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">setContentView</SPAN><SPAN class="punctuation token">(</SPAN>linearLayout<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">private</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">initialize</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">AsyncTask</SPAN><SPAN class="operator token"><</SPAN>Void<SPAN class="punctuation token">,</SPAN> Void<SPAN class="punctuation token">,</SPAN> Void<SPAN class="operator token">></SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
@Override
<SPAN class="keyword token">protected</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">onPreExecute</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
mapView<SPAN class="punctuation token">.</SPAN><SPAN class="token function">setMap</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ArcGISMap</SPAN><SPAN class="punctuation token">(</SPAN>Basemap<SPAN class="punctuation token">.</SPAN>Type<SPAN class="punctuation token">.</SPAN>LIGHT_GRAY_CANVAS<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">39.7294</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="number token">104.8319</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">9</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
@Override
<SPAN class="keyword token">protected</SPAN> Void <SPAN class="token function">doInBackground</SPAN><SPAN class="punctuation token">(</SPAN>Void<SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">.</SPAN> voids<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
String geoPackagePath <SPAN class="operator token">=</SPAN> <SPAN class="token function">getGeoPackagePath</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">final</SPAN> GeoPackage geoPackage <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">GeoPackage</SPAN><SPAN class="punctuation token">(</SPAN>geoPackagePath<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
geoPackage<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addDoneLoadingListener</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Runnable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
@Override
<SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
FeatureTable featureTable <SPAN class="operator token">=</SPAN> geoPackage<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getGeoPackageFeatureTables</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">get</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">final</SPAN> FeatureLayer featureLayer <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">FeatureLayer</SPAN><SPAN class="punctuation token">(</SPAN>featureTable<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
featureLayer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addDoneLoadingListener</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Runnable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
@Override
<SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">run</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
mapView<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getMap</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">getOperationalLayers</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">add</SPAN><SPAN class="punctuation token">(</SPAN>featureLayer<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
featureLayer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">loadAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
geoPackage<SPAN class="punctuation token">.</SPAN><SPAN class="token function">loadAsync</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">return</SPAN> null<SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">execute</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">private</SPAN> String <SPAN class="token function">getGeoPackagePath</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
String folder <SPAN class="operator token">=</SPAN> <SPAN class="string token">"/storage/emulated/0/labs/"</SPAN><SPAN class="punctuation token">;</SPAN>
File file <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">File</SPAN><SPAN class="punctuation token">(</SPAN>folder <SPAN class="operator token">+</SPAN> filename<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="operator token">!</SPAN>file<SPAN class="punctuation token">.</SPAN><SPAN class="token function">exists</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">return</SPAN> file<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getPath</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>