android studio 内存如何进行内存读写操作像c++readmemory一样

Android Studio之高德地图实现定位和3D地图显示_Android开发_动态网站制作指南
Android Studio之高德地图实现定位和3D地图显示
来源:人气:732
在应用开发中,地图开发是经常需要使用的“”,国内比较出名的是就是百度地图和高德地图。
此博客讲的是高德地图实现定位和3D地图显示,并标注相应位置,话不多说,先看看效果,在上代码。
&效果如图:
首先注册高德成为开发者(打开高德地图,点击底部的开发者平台),创建应用,按照要求填写相应信息,如下图:
途中包含了发布版的SHA1安全码和测试版SHA1安全码,两者的值可以看& 博客 : Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码&
讲的很详细,照做就一定会成功获取的。
首先导入高德的jar包
选中jar包右键点击& Add As Library, 在build.fradle中看到如下代码 表示导包成功
compile files('libs/AMap_Location_V3.0.0_.jar')
compile files('libs/AMap_Search_V3.5.0_.jar')
compile files('libs/AMap_3DMap_V4.1.1_.jar')
代码:(注:项目代码目录中要添加一个接口文件& JniLibs 的os文件& 才能绘制地图,具体下载查看,就不详细描述了)
* 讲诉了高德地图定位和3D地图显示
* 打包和未打包的情况是不一样的,高德配置是可以配置调试版和发布版
public class MainActivity extends AppCompatActivity implements AMapLocationListener,GeocodeSearch.OnGeocodeSearchListener {
ivate AMapLocationClient locationClient =
private AMapLocationClientOption locationOption =
private TextView textV
private String[] strM
private com.amap.api.maps.AMap aM
private MapView mapV
private GeocodeSearch geocoderS
private Marker geoM
private static LatLonPoint latLonP
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text_map);
mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);// 此方法必须重写
Location();
private void initMap(){
if (aMap == null) {
aMap = mapView.getMap();
//用高德默认图标
//geoMarker= aMap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f).icon(BitmapDescrtorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
//自定义图标
geoMarker = aMap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f)
.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.punch_dw))));
geocoderSearch = new GeocodeSearch(this);
geocoderSearch.setOnGeocodeSearchListener(this);
getAddress(latLonPoint);
public void onLocationChanged(AMapLocation loc) {
if (null != loc) {
Message msg = mHandler.obtainMessage();
msg.what = Utils.MSG_LOCATION_FINISH;
mHandler.sendMessage(msg);
Handler mHandler = new Handler() {
public void dispatchMessage(android.os.Message msg) {
switch (msg.what) {
//定位完成
case Utils.MSG_LOCATION_FINISH:
String result = &&;
AMapLocation loc = (AMapLocation) msg.
result = Utils.getLocationStr(loc, 1);
strMsg = result.split(&,&);
Toast.makeText(MainActivity.this, &定位成功&, Toast.LENGTH_LONG).show();
textView.setText(&地址:& + strMsg[0] + &\n& + &经
度:& + strMsg[1] + &\n& + &纬
度:& + strMsg[2]);
latLonPoint= new LatLonPoint(Double.valueOf(strMsg[2]), Double.valueOf(strMsg[1]));
initMap();
} catch (Exception e) {
Toast.makeText(MainActivity.this, &定位失败&, Toast.LENGTH_LONG).show();
public void Location() {
// TODO Auto-generated method stub
locationClient = new AMapLocationClient(this);
locationOption = new AMapLocationClientOption();
// 设置定位模式为低功耗模式
locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
// 设置定位监听
locationClient.setLocationListener(this);
locationOption.setOnceLocation(true);//设置为单次定位
locationClient.setLocationOption(locationOption);// 设置定位参数
// 启动定位
locationClient.startLocation();
mHandler.sendEmptyMessage(Utils.MSG_LOCATION_START);
} catch (Exception e) {
Toast.makeText(MainActivity.this, &定位失败&, Toast.LENGTH_LONG).show();
* 响应逆地理编码
public void getAddress(final LatLonPoint latLonPoint) {
RegeocodeQuery query = new RegeocodeQuery(latLonPoint, 200,
GeocodeSearch.AMAP);// 第一个参数表示一个Latlng,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系
geocoderSearch.getFromLocationAsyn(query);// 设置同步逆地理编码请求
* 地理编码查询回调
public void onGeocodeSearched(GeocodeResult result, int rCode) {
* 逆地理编码回调
public void onRegeocodeSearched(RegeocodeResult result, int rCode) {
if (rCode == 1000) {
if (result != null && result.getRegeocodeAddress() != null
&& result.getRegeocodeAddress().getFormatAddress() != null) {
Toast.makeText(MainActivity.this,result.getRegeocodeAddress().getFormatAddress()
+ &附近&,Toast.LENGTH_LONG).show();
aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
AMapUtil.convertToLatLng(latLonPoint), 15));
geoMarker.setPosition(AMapUtil.convertToLatLng(latLonPoint));
* 方法必须重写
public void onResume() {
super.onResume();
mapView.onResume();
* 方法必须重写
public void onPause() {
super.onPause();
mapView.onPause();
* 方法必须重写
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
AndroidManifest.中加入权限
&!--允许程序打开网络套接字--&
&uses-permission android:name=&android.permission.INTERNET& /&
&!-- 定位 --&
&!-- 用于访问GPS定位 --&
&uses-permission android:name=&android.permission._FINE_LOCATION&&&/uses-permission&
&uses-permission android:name=&android.permission.ACCESS_LOCATION_EXTRA_COMMANDS&&&/uses-permission&
&!--允许程序设置内置sd卡的写权限--&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&!--允许程序获取网络状态--&
&uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE& /&
&!--允许程序访问WiFi网络信息--&
&uses-permission android:name=&android.permission.ACCESS_WIFI_STATE& /&
&!--允许程序读写手机状态和身份--&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&!--允许程序访问CellID或WiFi热点来获取粗略的位置--&
&uses-permission android:name=&android.permission.ACCESS_COARSE_LOCATION& /&
如果只实现高德定位可查看:
Android Studio 中实现高德定位并获取相应信息&
讲的很详细;有疑问的请留言。
源码点击下载
优质网站模板Android Studio 比 Eclipse 好用在哪里? - 知乎<strong class="NumberBoard-itemValue" title="被浏览<strong class="NumberBoard-itemValue" title="0,543分享邀请回答10144 条评论分享收藏感谢收起2910 条评论分享收藏感谢收起c++ - Linker command fail with exit code 1 in Android studio? - Stack Overflow
Stack Overflow for Teams
A private, secure home for your team&#39;s questions and answers.
to customize your list.
This site uses cookies to deliver our services and to show you relevant ads and job listings.
By using our site, you acknowledge that you have read and understand our , , and our .
Your use of Stack Overflow’s Products and Services, including the Stack Overflow Network, is subject to these policies and terms.
I am using Bitmap Operation native library in android studio but compile verry well but runtime throw Linker command fail with exit-code 1(use -v to see invocation)
I am put following the c code.
#include &jni.h&
#include &jni.h&
#include &android/log.h&
#include &stdio.h&
#include &android/bitmap.h&
#include &cstring&
#include &unistd.h&
__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
__android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
extern "C"
JNIEXPORT jobject JNICALL Java_photoeditor_com_myapplication_MainActivity_jniStoreBitmapData(JNIEnv * env, jobject obj, jobject bitmap);
JNIEXPORT jobject JNICALL Java_photoeditor_com_myapplication_MainActivity_jniGetBitmapFromStoredBitmapData(JNIEnv * env, jobject obj, jobject handle);
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniFreeBitmapData(JNIEnv * env, jobject obj, jobject handle);
//rotate 90 degrees CCW
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniRotateBitmapCcw90(JNIEnv * env, jobject obj, jobject handle);
//rotate 90 degrees CW
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniRotateBitmapCw90(JNIEnv * env, jobject obj, jobject handle);
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniCropBitmap(JNIEnv * env, jobject obj, jobject handle, uint32_t left, uint32_t top, uint32_t right, uint32_t bottom);
//scale using nearest neighbor
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniScaleNNBitmap(JNIEnv * env, jobject obj, jobject handle, uint32_t newWidth, uint32_t newHeight);
class JniBitmap
uint32_t* _storedBitmapP
AndroidBitmapInfo _bitmapI
JniBitmap()
_storedBitmapPixels = NULL;
/**crops the bitmap within to be smaller. note that no validations are done*/ //
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniCropBitmap(JNIEnv * env, jobject obj, jobject handle, uint32_t left, uint32_t top, uint32_t right, uint32_t bottom)
JniBitmap* jniBitmap = (JniBitmap*) env-&GetDirectBufferAddress(handle);
if (jniBitmap-&_storedBitmapPixels == NULL)
uint32_t* previousData = jniBitmap-&_storedBitmapP
uint32_t oldWidth = jniBitmap-&_bitmapInfo.
uint32_t newWidth = right - left, newHeight = bottom -
uint32_t* newBitmapPixels = new uint32_t[newWidth * newHeight];
uint32_t* whereToGet = previousData + left + top * oldW
uint32_t* whereToPut = newBitmapP
for (int y = y & ++y)
memcpy(whereToPut, whereToGet, sizeof(uint32_t) * newWidth);
whereToGet += oldW
whereToPut += newW
//done copying , so replace old data with new one
delete[] previousD
jniBitmap-&_storedBitmapPixels = newBitmapP
jniBitmap-&_bitmapInfo.width = newW
jniBitmap-&_bitmapInfo.height = newH
/**rotates the inner bitmap data by 90 degress counter clock wise*/ //
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniRotateBitmapCcw90(JNIEnv * env, jobject obj, jobject handle)
JniBitmap* jniBitmap = (JniBitmap*) env-&GetDirectBufferAddress(handle);
if (jniBitmap-&_storedBitmapPixels == NULL)
uint32_t* previousData = jniBitmap-&_storedBitmapP
AndroidBitmapInfo bitmapInfo = jniBitmap-&_bitmapI
uint32_t* newBitmapPixels = new uint32_t[bitmapInfo.height * bitmapInfo.width];
int whereToGet = 0;
// XY. ... ... ..X
// ...&Y..&...&..Y
// ... X.. .YX ...
for (int x = 0; x & bitmapInfo. ++x)
for (int y = bitmapInfo.height - 1; y &= 0; --y)
//take from each row (up to bottom), from left to right
uint32_t pixel = previousData[whereToGet++];
newBitmapPixels[bitmapInfo.width * y + x] =
delete[] previousD
jniBitmap-&_storedBitmapPixels = newBitmapP
uint32_t temp = bitmapInfo.
bitmapInfo.width = bitmapInfo.
bitmapInfo.height =
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniRotateBitmapCw90(JNIEnv * env, jobject obj, jobject handle)
JniBitmap* jniBitmap = (JniBitmap*) env-&GetDirectBufferAddress(handle);
if (jniBitmap-&_storedBitmapPixels == NULL)
uint32_t* previousData = jniBitmap-&_storedBitmapP
AndroidBitmapInfo bitmapInfo = jniBitmap-&_bitmapI
uint32_t* newBitmapPixels = new uint32_t[bitmapInfo.height * bitmapInfo.width];
int whereToGet = 0;
// XY. ..X ... ...
// ...&..Y&...&Y..
// ... ... .YX X..
for (int x = bitmapInfo.width - 1; x &= 0; --x)
for (int y = 0; y & bitmapInfo. ++y)
//take from each row (up to bottom), from left to right
uint32_t pixel = previousData[whereToGet++];
newBitmapPixels[bitmapInfo.width * y + x] =
delete[] previousD
jniBitmap-&_storedBitmapPixels = newBitmapP
uint32_t temp = bitmapInfo.
bitmapInfo.width = bitmapInfo.
bitmapInfo.height =
/**free bitmap*/
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniFreeBitmapData(JNIEnv * env, jobject obj, jobject handle)
JniBitmap* jniBitmap = (JniBitmap*) env-&GetDirectBufferAddress(handle);
if (jniBitmap-&_storedBitmapPixels == NULL)
delete[] jniBitmap-&_storedBitmapP
jniBitmap-&_storedBitmapPixels = NULL;
delete jniB
/**restore java bitmap (from JNI data)*/
JNIEXPORT jobject JNICALL Java_photoeditor_com_myapplication_MainActivity_jniGetBitmapFromStoredBitmapData(JNIEnv * env, jobject obj, jobject handle)
JniBitmap* jniBitmap = (JniBitmap*) env-&GetDirectBufferAddress(handle);
if (jniBitmap-&_storedBitmapPixels == NULL)
LOGD("no bitmap data was stored. returning null...");
return NULL;
//creating a new bitmap to put the pixels into it - using Bitmap Bitmap.createBitmap (int width, int height, Bitmap.Config config) :
//LOGD("creating new bitmap...");
jclass bitmapCls = env-&FindClass("android/graphics/Bitmap");
jmethodID createBitmapFunction = env-&GetStaticMethodID(bitmapCls, "createBitmap", "(IILandroid/graphics/Bitmap$C)Landroid/graphics/B");
jstring configName = env-&NewStringUTF("ARGB_8888");
jclass bitmapConfigClass = env-&FindClass("android/graphics/Bitmap$Config");
jmethodID valueOfBitmapConfigFunction = env-&GetStaticMethodID(bitmapConfigClass, "valueOf", "(Ljava/lang/S)Landroid/graphics/Bitmap$C");
jobject bitmapConfig = env-&CallStaticObjectMethod(bitmapConfigClass, valueOfBitmapConfigFunction, configName);
jobject newBitmap = env-&CallStaticObjectMethod(bitmapCls, createBitmapFunction, jniBitmap-&_bitmapInfo.width, jniBitmap-&_bitmapInfo.height, bitmapConfig);
// putting the pixels into the new bitmap:
void* bitmapP
if ((ret = AndroidBitmap_lockPixels(env, newBitmap, &bitmapPixels)) & 0)
LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
return NULL;
uint32_t* newBitmapPixels = (uint32_t*) bitmapP
int pixelsCount = jniBitmap-&_bitmapInfo.height * jniBitmap-&_bitmapInfo.
memcpy(newBitmapPixels, jniBitmap-&_storedBitmapPixels, sizeof(uint32_t) * pixelsCount);
AndroidBitmap_unlockPixels(env, newBitmap);
//LOGD("returning the new bitmap");
return newB
/**store java bitmap as JNI data*/
JNIEXPORT jobject JNICALL Java_photoeditor_com_myapplication_MainActivity_jniStoreBitmapData(JNIEnv * env, jobject obj, jobject bitmap)
AndroidBitmapInfo bitmapI
uint32_t* storedBitmapPixels = NULL;
//LOGD("reading bitmap info...");
if ((ret = AndroidBitmap_getInfo(env, bitmap, &bitmapInfo)) & 0)
LOGE("AndroidBitmap_getInfo() failed ! error=%d", ret);
return NULL;
//LOGD("width:%d height:%d stride:%d", bitmapInfo.width, bitmapInfo.height, bitmapInfo.stride);
if (bitmapInfo.format != ANDROID_BITMAP_FORMAT_RGBA_8888)
LOGE("Bitmap format is not RGBA_8888!");
return NULL;
//read pixels of bitmap into native memory :
//LOGD("reading bitmap pixels...");
void* bitmapP
if ((ret = AndroidBitmap_lockPixels(env, bitmap, &bitmapPixels)) & 0)
LOGE("AndroidBitmap_lockPixels() failed ! error=%d", ret);
return NULL;
uint32_t* src = (uint32_t*) bitmapP
storedBitmapPixels = new uint32_t[bitmapInfo.height * bitmapInfo.width];
int pixelsCount = bitmapInfo.height * bitmapInfo.
memcpy(storedBitmapPixels, src, sizeof(uint32_t) * pixelsCount);
AndroidBitmap_unlockPixels(env, bitmap);
JniBitmap *jniBitmap = new JniBitmap();
jniBitmap-&_bitmapInfo = bitmapI
jniBitmap-&_storedBitmapPixels = storedBitmapP
return env-&NewDirectByteBuffer(jniBitmap, 0);
/**scales the image using the fastest, simplest algorithm called "nearest neighbor" */ //
JNIEXPORT void JNICALL Java_photoeditor_com_myapplication_MainActivity_jniScaleNNBitmap(JNIEnv * env, jobject obj, jobject handle, uint32_t newWidth, uint32_t newHeight)
JniBitmap* jniBitmap = (JniBitmap*) env-&GetDirectBufferAddress(handle);
if (jniBitmap-&_storedBitmapPixels == NULL)
uint32_t oldWidth = jniBitmap-&_bitmapInfo.
uint32_t oldHeight = jniBitmap-&_bitmapInfo.
uint32_t* previousData = jniBitmap-&_storedBitmapP
uint32_t* newBitmapPixels = new uint32_t[newWidth * newHeight];
int x2, y2;
int whereToPut = 0;
for (int y = 0; y & newH ++y)
for (int x = 0; x & newW ++x)
x2 = x * oldWidth / newW
if (x2 & 0)
else if (x2 &= oldWidth)
x2 = oldWidth - 1;
y2 = y * oldHeight / newH
if (y2 & 0)
else if (y2 &= oldHeight)
y2 = oldHeight - 1;
newBitmapPixels[whereToPut++] = previousData[(y2 * oldWidth) + x2];
//same as : newBitmapPixels[(y * newWidth) + x] = previousData[(y2 * oldWidth) + x2];
delete[] previousD
jniBitmap-&_storedBitmapPixels = newBitmapP
jniBitmap-&_bitmapInfo.width = newW
jniBitmap-&_bitmapInfo.height = newH
I am use stacktrace that time display following exception i am put it
Cmakelists.txt inside configration
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
add_library( # Sets the name of the library.
JniBitmapOperations
# Sets the library as a shared library.
# Provides a relative path to your source file(s).
# Associated headers in the same location as their source
# file are automatically included.
src/main/cpp/JniBitmapOperations.cpp )
find_library( # Sets the name of the path variable.
JniBitmapOperations
# Specifies the name of the NDK library that
# you want CMake to locate.
target_link_libraries( # Specifies the target library.
JniBitmapOperations
# Links the target library to the log library
# included in the NDK.
Android.mk file content
LOCAL_PATH := $(call my-dir)
#bitmap operations module
include $(CLEAR_VARS)
LOCAL_MODULE
:= JniBitmapOperations
LOCAL_SRC_FILES := JniBitmapOperations.cpp
LOCAL_LDLIBS := -llog
LOCAL_LDFLAGS += -ljnigraphics
include $(BUILD_SHARED_LIBRARY)
APP_OPTIM := debug
LOCAL_CFLAGS := -g
#if you need to add more module, do the same as the one we started with (the one with the CLEAR_VARS)
Add calling java jniBitmapHolder.java file and no more process only compile and build my project to throw this exception .
import android.graphics.B
import android.util.L
import java.nio.ByteB
public class JniBitmapHolder
ByteBuffer _handler =
System.loadLibrary("JniBitmapOperations");
private native ByteBuffer jniStoreBitmapData(Bitmap bitmap);
private native Bitmap jniGetBitmapFromStoredBitmapData(ByteBuffer handler);
private native void jniFreeBitmapData(ByteBuffer handler);
private native void jniRotateBitmapCcw90(ByteBuffer handler);
private native void jniRotateBitmapCw90(ByteBuffer handler);
private native void jniCropBitmap(ByteBuffer handler,final int left,final int top,final int right,final int bottom);
private native void jniScaleNNBitmap(ByteBuffer handler,final int newWidth,final int newHeight);
public JniBitmapHolder()
public JniBitmapHolder(final Bitmap bitmap)
storeBitmap(bitmap);
public void storeBitmap(final Bitmap bitmap)
if(_handler!=null)
freeBitmap();
_handler=jniStoreBitmapData(bitmap);
public void rotateBitmapCcw90()
if(_handler==null)
jniRotateBitmapCcw90(_handler);
public void rotateBitmapCw90()
if(_handler==null)
jniRotateBitmapCw90(_handler);
public void cropBitmap(final int left,final int top,final int right,final int bottom)
if(_handler==null)
jniCropBitmap(_handler,left,top,right,bottom);
public Bitmap getBitmap()
if(_handler==null)
return jniGetBitmapFromStoredBitmapData(_handler);
public Bitmap getBitmapAndFree()
final Bitmap bitmap=getBitmap();
freeBitmap();
public void scaleBitmap(final int newWidth,final int newHeight)
if(_handler==null)
jniScaleNNBitmap(_handler,newWidth,newHeight);
public void freeBitmap()
if(_handler==null)
jniFreeBitmapData(_handler);
protected void finalize() throws Throwable
super.finalize();
if(_handler==null)
Log.w("DEBUG","JNI bitmap wasn't freed nicely.please rememeber to free the bitmap as soon as you can");
freeBitmap();
build gradle file configration.
compileSdkVersion 25
buildToolsVersion "25.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.itflash.whatsappstickers"
minSdkVersion 18
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
moduleName "JniBitmapOperations"
ldLibs "log",
"jnigraphics"
//abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cppFlags "-frtti -fexceptions"
arguments '-DANDROID_PLATFORM=android-19', '-DANDROID_TOOLCHAIN=clang'
packagingOptions {
exclude 'META-INF/NOTICE' // will not include NOTICE file
exclude 'META-INF/LICENSE' // will not include LICENSE file
exclude 'META-INF/DEPENDENCIES'
buildTypes {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
externalNativeBuild {
path "CMakeLists.txt"
dexOptions {
incremental true
javaMaxHeapSize "1536m"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
The linker cannot find the functions you use, i.e. you must specify the library manually. Looks to me, as if that should be libjnigraphics.
Did you specify LOCAL_LDFLAGS += -ljnigraphics in Android.mk as shown in ?
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Post as a guest
Post as a guest
By clicking &Post Your Answer&, you acknowledge that you have read our updated ,
and , and that your continued use of the website is subject to these policies.
Not the answer you&#39;re looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabled

我要回帖

更多关于 android studio看内存 的文章

 

随机推荐